У меня есть код, который «звучит» так:
нить 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_gettime с CLOCK_MONOTONIC, но я хотел бы сначала услышать некоторые другие подсказки.