Форум — Development Атомарные операции (C, Linux) 0 0 Всем привет! Что в линуксе есть по части атоманых операций? Конкретно интересуют fetch-and-set, test-and-set, fetch-and-add в юзерспейсе. Ссылка
#include <asm/atomic.h> Среди прочих: static __inline__ int atomic_sub_and_test(int i, atomic_t *v); static __inline__ int atomic_add_return(int i, atomic_t *v); atomic_cmpxchg(v, old, new) atomic_xchg(v, new) rmap (19.03.09 18:45:23 MSK) Показать ответ Ссылка
Ответ на: комментарий от rmap 19.03.09 18:45:23 MSK Это таки лучше для кернел-спейса. Для юзерспейса лучше как-то так: http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Atomic-Builtins.html tzukko ★ (19.03.09 22:18:06 MSK) Показать ответ Ссылка
P.S. не совсем то, но зато POSIX-компатибл способ: http://linux.die.net/man/3/pthread_spin_init правда реализовано практически нигде в данный момент. gshladgs (20.03.09 09:51:23 MSK) Показать ответ Ссылка
Ответ на: комментарий от gshladgs 20.03.09 09:51:23 MSK > P.S. не совсем то, но зато POSIX-компатибл способ: http://linux.die.net/man/3/pthread_spin_init правда реализовано практически нигде в данный момент. В глибце есть. Автор не признался, зачем ему это всё надо, скорее всего спинлоков хватит, они ж как раз придуманы как абстракция подобных фокусов. const86 ★★★★★ (20.03.09 10:27:45 MSK) Показать ответ Ссылка
Ответ на: комментарий от const86 20.03.09 10:27:45 MSK Эт на линухе есть. На других *NIX-ах - много где нет еще gshladgs (20.03.09 10:38:57 MSK) Показать ответ Ссылка
Ответ на: комментарий от gshladgs 20.03.09 10:38:57 MSK > Эт на линухе есть. На других *NIX-ах - много где нет еще Ну дык а в теме чё написано? const86 ★★★★★ (20.03.09 12:40:18 MSK) Показать ответ Ссылка
Ответ на: комментарий от const86 20.03.09 12:40:18 MSK > Ну дык а в теме чё написано? Младеж неплохо бы приучать к портабельности gshladgs (20.03.09 15:31:39 MSK) Показать ответ Ссылка
Ответ на: комментарий от gshladgs 20.03.09 15:31:39 MSK > Младеж неплохо бы приучать к портабельности POSIX - это типа не портабельность? :) А там как раз про спинлоки и рассказано. const86 ★★★★★ (20.03.09 19:11:04 MSK) Ссылка
Ответ на: комментарий от tzukko 19.03.09 22:18:06 MSK О, спасибо, попробую! Тем, кому важна кросплатформенность имеет смысл попробовать http://www.hpl.hp.com/research/linux/atomic_ops/ mannaz ★ (21.03.09 18:09:45 MSK) автор топика Ссылка