Class: DispatchQueue::Continuation
- Inherits:
-
Object
- Object
- DispatchQueue::Continuation
- Defined in:
- lib/dispatch_queue_rb/internal/continuation.rb
Instance Attribute Summary collapse
-
#barrier ⇒ Object
readonly
Returns the value of attribute barrier.
-
#eta ⇒ Object
readonly
Returns the value of attribute eta.
Instance Method Summary collapse
-
#initialize(target_queue: nil, group: nil, barrier: false, eta: nil, &task) ⇒ Continuation
constructor
A new instance of Continuation.
- #run(default_target_queue: nil, override_target_queue: nil) ⇒ Object
Constructor Details
#initialize(target_queue: nil, group: nil, barrier: false, eta: nil, &task) ⇒ Continuation
15 16 17 18 19 20 21 |
# File 'lib/dispatch_queue_rb/internal/continuation.rb', line 15 def initialize( target_queue:nil, group:nil, barrier:false, eta:nil, &task ) @task = task @target_queue = target_queue @group = group = @eta = eta end |
Instance Attribute Details
#barrier ⇒ Object (readonly)
Returns the value of attribute barrier.
12 13 14 |
# File 'lib/dispatch_queue_rb/internal/continuation.rb', line 12 def end |
#eta ⇒ Object (readonly)
Returns the value of attribute eta.
13 14 15 |
# File 'lib/dispatch_queue_rb/internal/continuation.rb', line 13 def eta @eta end |
Instance Method Details
#run(default_target_queue: nil, override_target_queue: nil) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/dispatch_queue_rb/internal/continuation.rb', line 23 def run( default_target_queue:nil, override_target_queue:nil ) queue = override_target_queue || @target_queue || default_target_queue if queue if queue.( group:@group, &@task ) else queue.dispatch_async( group:@group, &@task ) end @group.leave() if @group else begin @task.call() if @task ensure @group.leave() if @group end end end |