Sha256: 72551f654fe0812d6d142546b7b71d0e1daae7f088d929577ed8ff3ad69b8dac

Contents?: true

Size: 507 Bytes

Versions: 19

Compression:

Stored size: 507 Bytes

Contents

module Listen
  # @private api
  module Internals
    module ThreadPool
      def self.add(&block)
        Thread.new { block.call }.tap do |th|
          (@threads ||= Queue.new) << th
        end
      end

      def self.stop
        return unless @threads ||= nil
        return if @threads.empty? # return to avoid using possibly stubbed Queue

        killed = Queue.new
        killed << @threads.pop.kill until @threads.empty?
        killed.pop.join until killed.empty?
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 6 rubygems

Version Path
sass-listen-3.0.7 lib/listen/internals/thread_pool.rb
listen-3.1.2 lib/listen/internals/thread_pool.rb
listen-3.0.7 lib/listen/internals/thread_pool.rb
listen-3.1.1 lib/listen/internals/thread_pool.rb
listen-3.1.0 lib/listen/internals/thread_pool.rb
listen-3.0.6 lib/listen/internals/thread_pool.rb
vagrant-unbundled-1.8.1.1 vendor/bundle/ruby/2.3.0/gems/listen-3.0.5/lib/listen/internals/thread_pool.rb
listen-3.0.5 lib/listen/internals/thread_pool.rb
listen-3.0.4 lib/listen/internals/thread_pool.rb
mastermind_adeybee-0.1.4 vendor/bundle/ruby/2.2.0/gems/listen-3.0.3/lib/listen/internals/thread_pool.rb
mastermind_adeybee-0.1.3 vendor/bundle/ruby/2.2.0/gems/listen-3.0.3/lib/listen/internals/thread_pool.rb
mastermind_adeybee-0.1.2 vendor/bundle/ruby/2.2.0/gems/listen-3.0.3/lib/listen/internals/thread_pool.rb
mastermind_adeybee-0.1.1 vendor/bundle/ruby/2.2.0/gems/listen-3.0.3/lib/listen/internals/thread_pool.rb
vagrant-cloudstack-1.2.0 vendor/bundle/gems/listen-3.0.3/lib/listen/internals/thread_pool.rb
geminfo-0.1.0 path/gems/listen-3.0.3/lib/listen/internals/thread_pool.rb
listen-3.0.3 lib/listen/internals/thread_pool.rb
listen-3.0.2 lib/listen/internals/thread_pool.rb
listen-3.0.1 lib/listen/internals/thread_pool.rb
listen-3.0.0 lib/listen/internals/thread_pool.rb