ThreadPuddle
Like a smaller, lamer thread pool.
Public Class Methods
ThreadPuddle.new(capacity, klass=Thread)
Creates a new ThreadPuddle object, with a fixed capacity.
To use with a different threading model, specify a different klass, for example:
tp = ThreadPuddle.new c, ForkingThreadPublic 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
Contributing
We require all contributors to comply with the Developer Certificate of Origin. This ensures that all contributions are properly licensed and attributed.
Contributor Code of Conduct
This repository is subject to a Contributor Code of Conduct adapted from the Contributor Covenant, version 3.0, available at https://www.contributor-covenant.org/version/3/0/
Licence
This project is licensed under the ISC licence. See LICENSE for details