cteni ze socketu

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Pondělí Listopad 18 21:36:57 CET 2002


On Wed, 13 Nov 2002, Petr Baudis wrote:

> Doporucuji zkusit deklarovat timeout_flag s modifikatorem "volatile",

To bude asi ono. Kompilator neni povinen si domyslet (pokud nedostane
volatile), ze by urcitou promennou mohl zmenit nekdo cizi (jiny thread,
hardware, signal handler), a tudiz je opravnen z kodu typu:

  x = 0;
  while (...) {
     ...
     if (x == 1) break;    (*)
     ...
  }

kde vyteckovane casti nemeni hodnotu x, pri optimalizaci zcela odstranit
prikaz oznaceny (*). GCC 3 ma uz pomerne agresivni optimalizator, ktery
takove veci rutinne provadi.

Proste uziti volatile je v teto situaci povinne.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux