A simple no-wasted-resources thread pool implementation.
Ruby
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
lib Make shutdown! to not join. Jun 23, 2012
README.md Add notice of merging into another gem. Oct 22, 2012
threadpool.gemspec Bump version Jun 23, 2012

README.md

ThreadPool - an implementation that doesn't waste CPU resources

GEM MERGED INTO THREAD, THIS IS UNMAINTAINED NOW: https://github.com/meh/ruby-thread

All the implementations I looked at were either buggy or wasted CPU resources for no apparent reason, for example used a sleep of 0.01 seconds to then check for readiness and stuff like this.

This implementation uses standard locking functions to work properly across multiple Ruby implementations.

Example

require 'threadpool'

pool = ThreadPool.new(4)

0.upto(10) { pool.process { sleep 2; puts 'lol' } }

gets # otherwise the program ends without the pool doing anything

You should get 4 lols every 2 seconds.