This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Wed Sep 24 09:39:11 -0700 2008 | |
| |
CHANGELOG | Sat Sep 27 11:57:25 -0700 2008 | |
| |
LICENSE | Wed Sep 24 09:40:51 -0700 2008 | |
| |
README | Thu Nov 20 11:48:05 -0800 2008 | |
| |
Rakefile | Wed Sep 24 09:36:12 -0700 2008 | |
| |
lib/ | Sat Sep 27 11:57:25 -0700 2008 | |
| |
test/ | Wed Sep 24 20:59:54 -0700 2008 | |
| |
thread_pool.gemspec | Sat Sep 27 11:57:25 -0700 2008 |
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







