__transaction_atomic без поддержки транзакционной памяти

Я просто компилировал код C/C++, используя __transaction_atomic но произошла ошибка компилятора

  • [Error] __transaction_atomic' without transactional memory support enabled

Код является:

#include <stdio.h>
int main()
{
    int i = 0;
    __transaction_atomic
    {
        i++;
    }
    return 0;
}

Как это понять? Мой компилятор GCC 4.9

1 ответ

Вы должны скомпилировать код с включенной поддержкой памяти транзакций. Отсюда

Компиляция программы TM с помощью GCC Чтобы включить поддержку TM, в командную строку компиляции необходимо добавить директиву компилятора '-fgnu-tm'. Пример: gcc -Wall -fgnu-tm -O3 -o ll ll.c Обратите внимание, что с уровнем оптимизации 0 (-O0) некоторые оптимизации TM отключены (RaR, RaW, RfW, WaR, WaW, оптимизированная память стека барьеры).

Другие вопросы по тегам