async def METHOD_NAME(self) -> _T:
    """Like `get()`, except yield to the event loop while waiting.
    Warning:
        A waiting `get_async()` won't be interrupted by an async cancellation.
        The proper way to interrupt a waiting `get_async()`
        is to close the queue, just like you have to do with `get()`.
    """
    return await run_sync(
        self.get,
        # We keep `cancellable` False so we don't leak this helper thread.
        # If we made it True, an async cancellation here would detach us
        # from the helper thread and allow the thread to "run to completion"--
        # but if no more values are ever enqueued, and the queue is never closed,
        # completion would never happen and it would hang around forever.
        cancellable=False,
    )