metalogこの広告は、90日以上更新していないブログに表示しています。packageを作れるようになった。&wb->state);"wb->state"のWB_start_allのbitが立っていたらreturnして、立ってなかったら立てる、というもの。flush"の排他をしていることになる。厳密には、これは排他になっていない。1つ目のスレッドがtest_bit()してから、set_bit()するまでの間に、2つ目のスレッドがtest_bit()でbitを見にいくことがある。section"に入ってしまう。ここを厳密な排他にするには、test_and_set_bit()を使う。developerには、わかっている。syncが2つ以上一緒に走ると重いよね、ぐらいのものなのでここで厳密な排他は必要ないのだ。いうatomicityが必要でない場合には、test_bit()とset_bit()とを分けた方がいい時もある。test_and_set_bit()を使うと必ずbitを立てる、すなわち値を更新してしまう。lineがdirtyになる。lineを汚すかどうか」が大きな違いになってくる。...スレッドはpatchの内容をすっかり離れて、こうした"idiom"のdocumentないし、それもあわせてなんか関数作っとく?という話になる。そこで関数の名前の話になり、"test_and_test_and_set_bit"がいいとか、"test_then_test_and_set_bit"がいいとか、patchの話どうしたみたいな感じになっていってる。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。