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