次のように「聞こえる」コードがあります。
スレッド 1
now = rdtsc();
for_each_member_in_a_list {
if ( member_in_list.deadline() <= now ) {
do_something;
}
}
スレッド 2
now = rdtsc();
for_each_member_in_a_list {
member_in_list.updatedealine( foo(now, ...) );
}
これは過去にうまく機能していましたが、現在は SMP システムでこのコードが意図したとおりに機能しません。CLOCK_MONOTONIC で clock_gettime を使用すると思いますが、最初に他のヒントを聞きたいと思います。