[linux]シーケンスカウンタロック(seqロック)

do {
	seq = read_seqbegin(&hoge_lock);
	bar = foo;
} while (read_seqretry(&hoge_lock, seq))
  • seq の値を保存しておき偶数であるか(write_sequence() によるロック中であれば奇数になる)、 hoge_lock の sequence 値と同じかをしらべ両方の条件が揃うまで値を参照する動作を続ける。
  • 「更新頻度が低い資源に対して参照動作を行うにはスピンロックより効率がいい。」ということらしい。
  • ”Linuxカーネル2.6解読室”には誤記がある。
a

スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク