Zpracovani signalu procesem

Dalibor Toman dtoman na fortech.cz
Čtvrtek Září 19 16:54:43 CEST 2002


> >  - pokud v threadu signal prerusi recv() muze mit vliv na chovani
> >    threadu pri vstupu do zamklych kritickych sekci
(pthread_mutex)?
>
> Asi ne. Asi nejaka chybicka v aplikaci?

podarilo se mi to, zda se, problemy eliminovat tim, ze vlastni akce
na signal je opozdena (bezprostredne se nastavi jen nejaky flag a
pozdeji thread co jej sleduje provede co je treba)

> >  - co muzu a co nesmim v obsluze odchyceneho signalu? (zapisuju do
> >    message logu syslogem)
>
> To je jasne receno v POSIX.1 :-)
> Muzete volat jen takove funkce, co jsou reentrantni (nemely by mit
> staticke datove struktury, volat v sobe malloc/free atd).

malloc neni reentrantni? Tim je to jasne. Volana rutina manipuluje se
stringy
(formatovani vystupu) a alokuje/realokuje pro ne pamet.

> A v pripade volani syslog si tim nejsem jist. Rozhodne standardni
> I/O knihovna nezapada pod prvni zmineny pozadavek.
> Pravdepodobne by bylo vhodne pouzit pri komplikaci -D_REENTRANT,
> to by mohlo neco z toho osetrit.

hmm. radeji jsem to puvodne nepsal - utilitka neni psana v
Ccku (nekamenovat please)  ani v C++ - nybrz v Kylixu :-)

D. Toman




Další informace o konferenci Linux