jei neklystu, cia parasyta +- for dummies: http://blog.regehr.org/archives/28 *6. Using volatile to get atomicity* <...> *Summary: Volatile has nothing to do with atomicity. Use locks.* ka dar pamirsau pries 2-3 postus parasyt ir pasiulyt, kad vizualizuoti problemos esme: kintamojo tipa is int pakeisti i char ir maks reiksme sumazinti iki 0xff. stebuklingai volatile "prades veikti" taip kaip EJS tikisi ir "problemos neliks" :) On 2015.06.07 20:55, ejs wrote: > 2015-06-06 20:34, CodeC rašė: > >> sesk vel du >> vieta kur "kazkas" tikrai atsitinka, tai c uzkrovimo is ram vieta ("if >> (c > 623)") eilute. todel, kad tai NE atomic operacija. tau jau gal 3 >> zmones parase esme, bet vistiek toliau nesamones kliedi ir dar kitus >> klaidini. "jei tik skaityt moketum..." > > "c" yra monotoniškai didėjantis. > Kokios jo galimos reikšmės jai jis nuskaitomas kolizijos metu ir kaip > tai įtakos programos logiką? > > Kitas momentas: kadangi "c" yra keičiamas ~1,2 kHz dažniu, dabartinė > programa gerokai dažniau matys tą pačią "c" reikšmę nei pasikeitusią. > > Ok, jei reikia tikslios "c" reikšmės, pasiimi ją į registrą ir cikle > operuoji registru, o ne kintamuoju. > Fin ? >