select() a chyba EINTR
Ivo Zacek
izacek na brno.bohem-net.cz
Čtvrtek Červenec 23 21:37:12 CEST 1998
Dalibor Toman wrote:
>
> >Chyba EINTR znamena, ze proces behem cekani na select() nebo jine
> >blokujici volani dostal nejaky signal (samozrejme takovy, ktery
> >nezpusobil jeho ukonceni).
Jeste jsem nad tim trochu premyslel, prosim vetsi experty, aby me
pripadne opravili, pokud hlasam bludy (coz by nebylo nic divneho).
> se zavola select () - nebo signal "visi" a v okamziku vyvolani selectu()
> je tento zrusen protoze existuje neobslouzeny signal?
Neni duvod, aby signal visel. AFAIK je vzdy zpracovan bezprostredne.
Chybu EINTR by snad mel vyvolat jedine signal, ktery je procesem
zachycen, protoze:
- ignorovany signal neudela nic,
- ostatni signaly proces ukonci.
No, a o zachycenem signalu by programator mel neco vedet ;-).
Neni tak dulezite, kdo signal poslal, podstatne je, ze v programu je
explicitne definovana jeho obsluha. Nebo snad existuji signaly, ktere
jsou defaulnte zachycovany nekde v knihovnach? (Tedy v mych ano, ale ve
standardnich o nicem takovem nevim.)
--
Ivo Zacek <izacek na sky.cz>, Supervisory Systems s.r.o. Brno
Je libo Win98? -- Ne, diky, pockam si na Win00.
Další informace o konferenci Linux