これはアトミックカウンターの例ですが、 安全ではないと思います。
コード: 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);
}
そして、値をアトミックに設定する方法がわかりません。