Sha256: 6188f5783d935f355de5cfd0ea429a7b4d26e6057562f81525516bf2047a491a
Contents?: true
Size: 670 Bytes
Versions: 1
Compression:
Stored size: 670 Bytes
Contents
# frozen_string_literal: true module SlowEnumeratorTools module Bufferer def self.buffer(enum, size) queue = SizedQueue.new(size) thread = SlowEnumeratorTools::Util.gen_collector_thread(enum, queue) gen_enumerator(queue, thread) end def self.gen_enumerator(queue, collector_thread) Enumerator.new do |y| loop do elem = queue.pop if SlowEnumeratorTools::Util::STOP_OK.equal?(elem) break elsif SlowEnumeratorTools::Util::STOP_ERR.equal?(elem) raise queue.pop end y << elem end collector_thread.join end.lazy end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slow_enumerator_tools-1.1.0 | lib/slow_enumerator_tools/bufferer.rb |