code: private void releaseWaiters() {
      Waiter head;
      do {
        head = waiters;
      } while (!ATOMIC_HELPER.casWaiters(this, head, Waiter.TOMBSTONE));
      for (Waiter currentWaiter = head; currentWaiter != null; currentWaiter = currentWaiter.next) {
        currentWaiter.unpark();
      }
    }
docs: Releases all threads in the {@link #waiters} list, and clears the list.