>>949
   raw_wait(y, z);  // spurious wakeup 有り

   if ( IsCond(y, z) ) {  // 厳密な条件チェック
の間で条件が変わったらどうするの?