@GuardedBy("lock")
  private void endWaitingFor(Guard guard) {
    int waiters = --guard.waiterCount;
    if (waiters == 0) {
      // unlink guard from activeGuards
      for (Guard p = activeGuards, pred = null; ; pred = p, p = p.next) {
        if (p == guard) {
          if (pred == null) {
            activeGuards = p.next;
          } else {
            pred.next = p.next;
          }
          p.next = null; // help GC
          break;
        }
      }
    }
  }
@GuardedBy("lock")
  private void endWaitingFor(Guard guard) {
    int waiters = --guard.waiterCount;
    if (waiters == 0) {
      
      for (Guard p = activeGuards, pred = null; ; pred = p, p = p.next) {
        if (p == guard) {
          if (pred == null) {
            activeGuards = p.next;
          } else {
            pred.next = p.next;
          }
          p.next = null; 
          break;
        }
      }
    }
  }
@ GuardedBy ( "lock" ) private void endWaitingFor ( Guard guard ) { int waiters = -- guard . waiterCount ; if ( waiters == 0 ) { // unlink guard from activeGuards for ( Guard p = activeGuards , pred = null ; ; pred = p , p = p . next ) { if ( p == guard ) { if ( pred == null ) { activeGuards = p . next ; } else { pred . next = p . next ; } p . next = null ; // help GC break ; } } } }
Records that the current thread is no longer waiting on the specified guard.
Records that the current thread is no longer waiting on the specified guard .