これは、他のスレッドが変数フラグを使用していない場合に、マスター スレッドがウェイクアップ シグナルを見逃さないようにするための安全な方法ですか?
void *Cancel_master_thread(void *arg)
{
while (1)
{
flag = 0;
pthread_mutex_lock(&cancel_in_progress);
flag = 1;
pthread_cond_wait(&cancel_finished, &cancel_in_progress);
pthread_mutex_unlock(&cancel_in_progress);
}
}
void *Cancel_slave_MB()
{
while (1)
{
while (flag != 1)
{
}
pthread_mutex_lock(&cancel_in_progress);
pthread_cond_signal(&cancel_finished);
pthread_mutex_unlock(&cancel_in_progress);
}
}