高度にスレッド化されたアプリがあります。
このアプリのスレッドは、共有メモリ マップ ファイルから読み取ります。彼らがそれに書き込むことはないと想定できます。
ここで必要なのは、リーダーがファイルからの読み取りを終了したときに共有タイムスタンプを更新するように拡張することです。すなわちtime_t last_access_time = time(NULL);
これは非常に頻繁に発生するため、可能であればロックのない実装を探したいと思います。
last_access_time
G++ でアトミック ビルトインを使用して現在の値を設定または確認するにはどうすればよいですか?
たとえば、これらのクラスメンバーがあり、_last_access_time
初期化されているとしますtime(NULL)
time_t _last_access_time;
void UpdateLastAccessTime(){
_last_access_time = time(NULL);
}
void GetLastAccessTime(){
return _last_access_time;
}
ロックフリーにすることは可能ですか?