Class: Rx::AnonymousSubscription

Inherits:
Object
  • Object
show all
Includes:
Subscription
Defined in:
lib/rx/subscriptions/subscription.rb

Instance Method Summary collapse

Methods included from Subscription

create, #dispose, empty

Constructor Details

#initialize(&unsubscribe_action) ⇒ AnonymousSubscription

Returns a new instance of AnonymousSubscription.



27
28
29
30
31
# File 'lib/rx/subscriptions/subscription.rb', line 27

def initialize(&unsubscribe_action)
  @unsubscribe_action = unsubscribe_action
  @gate = Mutex.new
  @unsubscribed = false
end

Instance Method Details

#unsubscribeObject



33
34
35
36
37
38
39
40
# 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