class Async::Promise
def wait
@returns [Object] The resolved value.
If already resolved, returns immediately. If rejected, raises the stored exception.
Wait for the promise to be resolved and return the value.
def wait @mutex.synchronize do # Increment waiting count: @waiting += 1 begin # Wait for resolution if not already resolved: @condition.wait(@mutex) unless @resolved # Return value or raise exception based on resolution type: if @resolved == :completed return @value else # Both :failed and :cancelled store exceptions in @value raise @value end ensure # Decrement waiting count when done: @waiting -= 1 end end end