Class: Webmidi::CallbackSubscription

Inherits:
Object
  • Object
show all
Defined in:
lib/webmidi/callback_subscription.rb

Instance Method Summary collapse

Constructor Details

#initialize(&unsubscribe) ⇒ CallbackSubscription

Returns a new instance of CallbackSubscription.



5
6
7
8
9
# File 'lib/webmidi/callback_subscription.rb', line 5

def initialize(&unsubscribe)
  @unsubscribe = unsubscribe
  @active = true
  @mutex = Mutex.new
end

Instance Method Details

#active?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/webmidi/callback_subscription.rb', line 22

def active?
  @mutex.synchronize { @active }
end

#unsubscribeObject



11
12
13
14
15
16
17
18
19
20
# File 'lib/webmidi/callback_subscription.rb', line 11

def unsubscribe
  callback = @mutex.synchronize do
    return false unless @active

    @active = false
    @unsubscribe
  end
  callback.call
  true
end