Sha256: 4b454cf86224f79db0f8d5fa5f8a7669416d1f848ec7d9e8f46fb608cd23a293

Contents?: true

Size: 655 Bytes

Versions: 13

Compression:

Stored size: 655 Bytes

Contents

require 'thread_safe'
require 'set'

module Libuv
    module Listener


        private


        CALLBACKS = ThreadSafe::Cache.new


        def callbacks
            @callbacks ||= Set.new
        end

        def callback(name)
            const_name = "#{name}_#{object_id}".to_sym
            unless CALLBACKS[const_name]
                callbacks << const_name
                CALLBACKS[const_name] = method(name)
            end
            CALLBACKS[const_name]
        end

        def clear_callbacks
            callbacks.each do |name|
                CALLBACKS.delete(name)
            end
            callbacks.clear
        end
    end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
libuv-0.12.0 lib/libuv/mixins/listener.rb
libuv-0.11.21 lib/libuv/mixins/listener.rb
libuv-0.11.20 lib/libuv/mixins/listener.rb
libuv-0.11.19 lib/libuv/mixins/listener.rb
libuv-0.11.18 lib/libuv/mixins/listener.rb
libuv-0.11.7 lib/libuv/mixins/listener.rb
libuv-0.11.5 lib/libuv/mixins/listener.rb
libuv-0.11.3 lib/libuv/mixins/listener.rb
libuv-0.11.2 lib/libuv/mixins/listener.rb
libuv-0.11.1 lib/libuv/mixins/listener.rb
libuv-0.11.0 lib/libuv/mixins/listener.rb
libuv-0.10.3 lib/libuv/mixins/listener.rb
libuv-0.10.2 lib/libuv/mixins/listener.rb