aboutsummaryrefslogtreecommitdiff
path: root/vendor/supply_drop/lib/supply_drop/async_enumerable.rb
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/supply_drop/lib/supply_drop/async_enumerable.rb')
-rw-r--r--vendor/supply_drop/lib/supply_drop/async_enumerable.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/vendor/supply_drop/lib/supply_drop/async_enumerable.rb b/vendor/supply_drop/lib/supply_drop/async_enumerable.rb
new file mode 100644
index 0000000..1d5a116
--- /dev/null
+++ b/vendor/supply_drop/lib/supply_drop/async_enumerable.rb
@@ -0,0 +1,19 @@
+module SupplyDrop
+ module AsyncEnumerable
+ def each(&block)
+ pool = SupplyDrop::ThreadPool.new(SupplyDrop::Util.thread_pool_size)
+ super do |item|
+ pool.schedule(item, &block)
+ end
+ pool.shutdown
+ end
+
+ def map(&block)
+ pool = SupplyDrop::ThreadPool.new(SupplyDrop::Util.thread_pool_size)
+ super do |item|
+ pool.schedule(item, &block)
+ end
+ pool.shutdown
+ end
+ end
+end