Project

babypool

0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
Simple thread pool implementation for Ruby green threads.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies
 Project Readme

Baby Pool: Simple thread pool.¶ ↑

Baby Pool is a simple, but solid implementation of a thread pool using Ruby green threads. Pools are initialized with a thread count and an execution limit. Baby Pool creates an array or workers each in their own thread that listen for incoming jobs.

The pool will continue to accept work until it is drained by calling the drain method.

A quick example:

  • Initialize the pool with a thread count and an execution limit. Each thread’s worker will timeout it’s current job when it reaches the pool’s execution limit.

pool = Babypool.new(:thread_count => 10, :execution_limit => 20)

  • Give the pool 20 jobs to do.

(0..20).each do |job| pool.work(job) do puts “Running job #{job}.” end end

  • When you are done, shut down the pool by calling the drain method

pool.drain