Class: Concurrent::Promises::ResolvableEvent

Inherits:
Event show all
Includes:
Resolvable
Defined in:
lib/concurrent/edge/promises.rb

Overview

A Event which can be resolved by user.

Instance Method Summary collapse

Methods inherited from Event

#any, #delay, #schedule, #to_event, #to_future, #with_default_executor, #zip

Methods inherited from AbstractEventFuture

#add_callback_notify_blocked, #chain, #chain_on, #chain_resolvable, #default_executor, #on_resolution, #on_resolution!, #on_resolution_using, #pending?, #resolved?, #state, #to_s, #touch, #wait, #with_default_executor

Methods included from AbstractEventFuture::ThrottleIntegration

#chain_throttled_by, #throttled_by

Instance Method Details

#resolve(raise_on_reassign = true) ⇒ self, false

Makes the event resolved, which triggers all dependent futures.

Parameters:

  • raise_on_reassign (Boolean) (defaults to: true)

    should method raise exception if already resolved

Returns:

  • (self, false)

    false is returner when raise_on_reassign is false and the receiver is already resolved.



1255
1256
1257
# File 'lib/concurrent/edge/promises.rb', line 1255

def resolve(raise_on_reassign = true)
  resolve_with RESOLVED, raise_on_reassign
end

#with_hidden_resolvableEvent

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

Returns:



1262
1263
1264
# File 'lib/concurrent/edge/promises.rb', line 1262

def with_hidden_resolvable
  @with_hidden_resolvable ||= EventWrapperPromise.new_blocked_by1(self, @DefaultExecutor).event
end