ThreadPuddle
Like a smaller, lamer thread pool.
Public Class Methods
ThreadPuddle.new(capacity)
Creates a new ThreadPuddle object, with a fixed capacity.
Public Instance Methods
tp.capacity
→ int
Retrieves the ThreadPuddle object's capacity.
tp.size
→ int
Number of threads currently occupying the puddle.
tp.block
→ tp
Blocks execution of the calling thread until there's a free slot in the puddle.
WARNING: there is no guarantee this will ever return.
tp.spawn(*args) {|*args| ... }
→ Thread
Spawns a new thread in the puddle.
If the puddle is full, this call blocks.
@yields *args
@see ThreadPuddle#block
@return the new Thread object
tp.join
→ tp
Waits for all threads in the puddle to join.
@return this ThreadPuddle object
tp.kill
→ int
Kills all threads in the puddle.
@return the number of threads killed