WinAPIのInterlockedExchangeを使用して、スレッドのロックフリー同期を使用したいと思います。
現在、このようなクラスがあります。
struct DataExchange
{
volatile LONG m_value;
void SetValue(LONG newVal)
{
InterlockedExchange(&m_value, newVal);
}
LONG GetValue()
{
LONG workVal=0;
InterlockedExchange(&workVal, m_value);
return workVal;
}
};
1つのスレッドは新しい値を設定でき、もう1つのスレッドはこの値を読み取ることができます。
今私がしたいのは、LONG
値をに変更することstruct
です。struct
WinAPIにロックを解放する方法はありますか?