гугл сказал что они имеются в наличии в gcc - и таки не обманул. Опыты показали что gcc настолько умен, что если результат функции не используется, то например вызов
__sync_fetch_and_add(&some_var, 1)
и вовсе превращается в lock inc [some_var]
Их правда не так чтобы особо много - с семейством Interlocked функций под windows не сравнить, но работает, да
Казалось бы все хорошо, но вот тут сказано, что появилась эта возможность начиная с gcc версии 4.4.0, который был выпущен аж в апреле 2009 года ! Я не буду злорадствовать как линуксоиды писали свои гениальные многопоточные программы до 2009 года, но это просто - ...
И вот все у них так - дегенеративная совершенно os, отставшая от windows лет этак на 15
И не надоело вам ксорить то, за столько лет.
ОтветитьУдалитьнет
ОтветитьУдалить