C言語なら俺に聞け(入門編)Part 85
■ このスレッドは過去ログ倉庫に格納されています
0586585
2011/06/17(金) 08:16:00.07static
void spinlock(gboolean* lock_flag)
{
while(*lock_flag == TRUE) {
g_usleep(0);
}
}
とすれば、今度は make OPT=-O2でも whileが変な最適化されずに動くようです。
シングルスレッドの時には無害だった最適化が、マルチスレッドだと有害になることがあるので、厄介だと思いました。
while(flag){} が最適化で無効にされるのは厄介だと感じます
■ このスレッドは過去ログ倉庫に格納されています