0.01
No commit activity in last 3 years
No release in over 3 years
A simple thread pool
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
This code is still pretty early, and not yet used in production.  That said, I am interested in feedback.  You can send me a message on GitHub's internal messaging system ( http://github.com/inbox/new/fizx ).

A simple executor-style ThreadPool for Ruby (with tests, yay!)

Usage:

	require "rubygems"
	require "thread_pool"
	pool = ThreadPool.new(threads = 10)
	pool.execute { puts "I'm writing from a thread" }
	pool.join
	
It's often useful to make sure that the properties of Ruby's blocks don't bite you.  The following code will usually print three nils, because n keeps changing.

	pool = ThreadPool.new(threads = 10)
	numbers = [1, 2, 3]
	while n = numbers.shift
		pool.execute { puts n.inspect }
	end
	pool.join
	
Passing arguments to execute avoids this. i.e.:

	pool = ThreadPool.new(threads = 10)
	numbers = [1, 2, 3]
	while n = numbers.shift
		pool.execute(n) {|local| puts local.inspect }
	end
	pool.join