Facebook Engineer?

The containing class is available as Async\Condition in the www repository.

Asynchronously wait for the condition variable to be notified and return the result or throw the exception received via notification

final public function waitForNotificationAsync(
  Awaitable<void> $notifiers,
): Awaitable<T>;

The caller must provide an Awaitable $notifiers (which must be a WaitHandle) that must not finish before the notification is received. This means $notifiers must represent work that is guaranteed to eventually trigger the notification. As long as the notification is issued only once, asynchronous execution unrelated to $notifiers is allowed to trigger the notification.