1

これはアトミックカウンターの例ですが、 安全ではないと思います。

コード: volatile int i;

int get_value()
{
   return i;
}

int set_value(int x)
{
   i = x;
}

gcc アトミック ビルトインについては知っていますが、アトミック セット値操作が見つかりません。

私のコードでは、この方法で安全に値を取得する必要があると思いますか?

inline uint64_t get_value()
{
    return __sync_fetch_and_add(&m_value, 0L);
}

そして、値をアトミックに設定する方法がわかりません。

4

1 に答える 1