class IOPromise::CancelContext
Public Class Methods
context_stack()
click to toggle source
# File lib/iopromise/cancel_context.rb, line 6 def context_stack Thread.current[:iopromise_context_stack] ||= [] end
current()
click to toggle source
# File lib/iopromise/cancel_context.rb, line 10 def current context_stack.last end
new(parent)
click to toggle source
# File lib/iopromise/cancel_context.rb, line 34 def initialize(parent) parent.subscribe(self) unless parent.nil? end
pop()
click to toggle source
# File lib/iopromise/cancel_context.rb, line 20 def pop ctx = context_stack.pop ctx.cancel ctx end
push()
click to toggle source
# File lib/iopromise/cancel_context.rb, line 14 def push new_ctx = CancelContext.new(current) context_stack.push(new_ctx) new_ctx end
with_new_context() { |ctx| ... }
click to toggle source
# File lib/iopromise/cancel_context.rb, line 26 def with_new_context ctx = push yield ctx ensure pop end
Public Instance Methods
cancel()
click to toggle source
# File lib/iopromise/cancel_context.rb, line 43 def cancel return unless defined?(@observers) @observers.each do |o| o.cancel end @observers = [] end
subscribe(observer)
click to toggle source
# File lib/iopromise/cancel_context.rb, line 38 def subscribe(observer) @observers ||= [] @observers.push observer end