awaitUninterruptibly

open suspend override fun awaitUninterruptibly()

Implements uninterruptible condition wait.

  1. Save lock state returned by .getState.

  2. Invoke .release with saved state as argument, throwing IllegalMonitorStateException if it fails.

  3. Block until signalled.

  4. Reacquire by invoking specialized version of .acquire with saved state as argument.