class Rx::AnonymousSubscription

Public Class Methods

new(&unsubscribe_action) click to toggle source
# File lib/rx/subscriptions/subscription.rb, line 27
def initialize(&unsubscribe_action)
  @unsubscribe_action = unsubscribe_action
  @gate = Mutex.new
  @unsubscribed = false
end

Public Instance Methods

unsubscribe() click to toggle source
# File lib/rx/subscriptions/subscription.rb, line 33
def unsubscribe
  should_unsubscribe = false
  @gate.synchronize do
    should_unsubscribe = !@unsubscribed
  end

  @unsubscribe_action.call if should_unsubscribe
end