code: public static void parkUntil(Object blocker, long deadline) {
          Thread t = Thread.currentThread();
          setBlocker(t, blocker);
          U.park(true, deadline);
          setBlocker(t, null);
      }
docs: Disables the current thread for thread scheduling purposes, until
  the specified deadline, unless the permit is available.
  
  <p>If the permit is available then it is consumed and the call
  returns immediately; otherwise the current thread becomes disabled
  for thread scheduling purposes and lies dormant until one of four
  things happens:
  
  <ul>
  <li>Some other thread invokes {@link #unpark unpark} with the
  current thread as the target; or
  
  <li>Some other thread {@linkplain Thread#interrupt interrupts} the
  current thread; or
  
  <li>The specified deadline passes; or
  
  <li>The call spuriously (that is, for no reason) returns.
  </ul>
  
  <p>This method does <em>not</em> report which of these caused the
  method to return. Callers should re-check the conditions which caused
  the thread to park in the first place. Callers may also determine,
  for example, the interrupt status of the thread, or the current time
  upon return.
  
  @param blocker the synchronization object responsible for this
  thread parking
  @param deadline the absolute time, in milliseconds from the Epoch,
  to wait until
  @since 1.6