public synchronized boolean recheck(WaitQueue.WaitNode node) {
   Thread caller = Thread.currentThread();
   if (owner_ == null) {
     owner_ = caller;
     holds_ = 1;
     return true;
   } else if (caller == owner_) {
     incHolds();
     return true;
   }
   wq_.insert(node);
   return false;
 }