программизм: volatile or non-volatile
Oct. 28th, 2010 01:12 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Небезынтересно наблюдать за эволюцией смысла ключегого слова volatile в разных языках и даже разных компиляторах.
Желающие работать с памятью атомарно, вернее, без локов, частенько используют это слово на С++ почем зря. С другой стороны, и убирать его порой как-то страшно бывает. Некоторым. ;-)
Во всяком случае, без качественной подготовки инфраструктуры лично я бы его не убирал. Хотя и использовать его всерьез - ошибочно.
Вот и Майкрософт, к примеру, имеет
LONG InterlockedIncrement(LONG volatile *Addend);
функцию с volatile параметром и точно такую же intrinsic
long _InterlockedIncrement( long * lpAddend );
но уже без volatile.
"Мужыки, что сказать-то хотели???"
Желающие работать с памятью атомарно, вернее, без локов, частенько используют это слово на С++ почем зря. С другой стороны, и убирать его порой как-то страшно бывает. Некоторым. ;-)
Во всяком случае, без качественной подготовки инфраструктуры лично я бы его не убирал. Хотя и использовать его всерьез - ошибочно.
Вот и Майкрософт, к примеру, имеет
LONG InterlockedIncrement(LONG volatile *Addend);
функцию с volatile параметром и точно такую же intrinsic
long _InterlockedIncrement( long * lpAddend );
но уже без volatile.
"Мужыки, что сказать-то хотели???"