Sha256: edb81f582100e61c07ba7f5e2bef76f9ac1710ca796dfde658a4ce4717235764

Contents?: true

Size: 361 Bytes

Versions: 1

Compression:

Stored size: 361 Bytes

Contents

# frozen_string_literal: true

module ActiveConcurrency
  module Schedulers
    class LeastBusy

      def initialize(pool, _options)
        mutex = Mutex.new
        @pool = pool.each { |w| w.mutex = mutex }
      end

      def schedule(*args, &block)
        worker = @pool.min_by(&:size)
        worker.schedule(*args, &block)
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
active_concurrency-0.1.0 lib/active_concurrency/schedulers/least_busy.rb