пятница, 10 сентября 2010 г.

gcc atomic built-ins

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

И вот все у них так - дегенеративная совершенно os, отставшая от windows лет этак на 15

2 комментария: