В gcc 4.1.0 появились специальные встроенные функции, предназначенные для выполнения атомарных операций. Более подробно о них написано тут.
Например, следующий код берет адрес позиции указателя в определенном массиве и инкрементирует указатель (после операции он указывает на следующий элемент в массиве):
cur_pos = __sync_fetch_and_add (&pos, sizeof(u_char));
В gcc3 этих функций нет.
No comments:
Post a Comment