reentrantnost libc

Radim Kolar hsn at netmag.cz
Tue Jul 13 18:45:10 CEST 2004


Mam problem s reentrantnosti libc. Mam single threaded aplikaci, ktera kdyz
dostane signal v dobe kdy je prave v nektere libc funkci napr. free() a zavola
tutez funkci v signal handleru, tak se aplikace abortne() s hlaskou recursive
call. Potreboval bych vedet jak tuto situaci resit.

Mohou se volat libc funkce z signal handleru? V pripade ze ne, jak zjistim
zda je prave nejaka funkce vykonavana. Zajimalo by mne zda pouziti multi
threaded knihovny libc_r tento problem vyresi. Protoze pokud pracuje
libc_r tak, ze pri vlezeni do malloc si nastavi semafor a pri dalsim
volani malloc ceka az bude semafor uvolnen, tak to fungovat nebude protoze
hlavni program je v te dobe stopnut. Ze zdrojaku libc_r to nejsem schopen
poznat v adresari /usr/src/lib/libc_r/uthread nic nenaznacuje ze by mela
tako knihovna neco do cineni s mallocem().



More information about the Users-l mailing list