class Concurrent::Promises::ResolvableEvent

A Event which can be resolved by user.

Public Instance Methods

resolve(raise_on_reassign = true, reserved = false) click to toggle source

Makes the event resolved, which triggers all dependent futures.

@!macro promise.param.raise_on_reassign @!macro promise.param.reserved

@param [true, false] reserved
  Set to true if the resolvable is {#reserve}d by you,
  marks resolution of reserved resolvable events and futures explicitly.
  Advanced feature, ignore unless you use {Resolvable#reserve} from edge.
# File lib/concurrent-ruby/concurrent/promises.rb, line 1314
def resolve(raise_on_reassign = true, reserved = false)
  resolve_with RESOLVED, raise_on_reassign, reserved
end
wait(timeout = nil, resolve_on_timeout = false) click to toggle source

Behaves as {AbstractEventFuture#wait} but has one additional optional argument resolve_on_timeout.

@param [true, false] resolve_on_timeout

If it times out and the argument is true it will also resolve the event.

@return [self, true, false] @see AbstractEventFuture#wait

# File lib/concurrent-ruby/concurrent/promises.rb, line 1332
def wait(timeout = nil, resolve_on_timeout = false)
  super(timeout) or if resolve_on_timeout
                      # if it fails to resolve it was resolved in the meantime
                      # so return true as if there was no timeout
                      !resolve(false)
                    else
                      false
                    end
end
with_hidden_resolvable() click to toggle source

Creates new event wrapping receiver, effectively hiding the resolve method.

@return [Event]

# File lib/concurrent-ruby/concurrent/promises.rb, line 1321
def with_hidden_resolvable
  @with_hidden_resolvable ||= EventWrapperPromise.new_blocked_by1(self, @DefaultExecutor).event
end