cteni ze socketu

Petr Baudis pasky na ucw.cz
Středa Listopad 13 19:17:49 CET 2002


Dear diary, on Wed, Nov 13, 2002 at 04:36:06PM CET, I got a letter,
where Ales Horak <ales na rupnw.upol.cz> told me, that...
> Ten alarm prokazatelne probehne (hodnota timeout_flag se po 5s opravdu 
> zmeni), ale po ukonceni funkce alarm_handler se rizeni vrati zpet k read(), 
> misto, aby pokracovalo na dalsim radku "if(timeout_flag==..."
> takze program zustane navzdy zablokovan funkci read() (pote co do socketu z 
> druhe strany uz nic dalsiho neprichazi.

Ono je otazka, jestli se skutecne rizeni vrati zpet k read() - podle me by
skutecne read() melo byt hodne a tise vratit EINTR. Ovsem je mozne, ze gcc
nahledlo ze ona podminka je tam naprosto zbytecna, protoze timeout_flag je
inicializovano na nulu a nevypada to, ze by se nekde uvnitr cyklu melo zmenit,
takze celou podminku stastne vyhodi. Doporucuji zkusit deklarovat timeout_flag
s modifikatorem "volatile", pripadne si pred/za to if() dat nejakou debugovaci
hlasku, abyste se ujistil, ze read() opravdu read()uje dal..

-- 
 
				Petr "Pasky" Baudis
.
This host is a black hole at HTTP wavelengths. GETs go in, and nothing
comes out, not even Hawking radiation.
                -- Graaagh the Mighty on rec.games.roguelike.angband
.
Public PGP key && geekcode && homepage: http://pasky.ji.cz/~pasky/


Další informace o konferenci Linux