> Зачем тогда писать в него такой большой пост?
Судя по твоему ответу, ты тоже мало что понял ;)
> Атомарные операции есть в builtin-ах, gcc. В других компиляторах они тоже могут быть, но о переносимости придётся позаботиться руками (если надо).
Вообще-то, именно это я и написАл.
А чего я не понял -- топикстартер изначально спрашивал про атомарные типы, потом обсуждение незаметно перешло на атомарные операции. Между тем, атомарных типов -- сколько угдно (де-факто для почти всех компиляторы на почти всех платформах можно смело полагать любой целый тип атомарным), а атомарных операций нет ни в стандарте, ни в "стандарте де-факто". Даже интринсики у одного и того же компилятора могут различаться на разных платформах. Проще всего заюзать готовую библиотеку -- я ссылку привёл.
> Атомарные операции на мьютексах -- результат фатального и необратимого поражения головного мозга.
Во-первых, обкладка некими блокировками атомарных операций -- единственный способ, если оставаться в рамках POSIX'а. В Линуксе с ядром >=2.5 разницы между мутексами и спинлоками практически не будет.
Во-вторых, атомарная операция -- не самоцель, а необходимая для алгоритма фенечка. В 90% случаев атомарные арифметические операции нужны для "атомизации" более "толстых" операций, а мутексы для этого и придуманы. Судя по нежеланию топикстартера уходить в ядро, именно это ему и надо. Так вот, с современным линуксовым ядром мутекс в ядро и не пойдет, если можно, в юзерспейсе спинлок крутанёт.