Object Threads
Object Threads emulates Python threading API paradigm. Creating threads by giving some block to constructor is sometime slightly unpractical way of running threads. This library allows encapsulating threads to classes, so class can define itself as thread which can be run by plain method call.
For example:
require "thread/object"
class Foo
include Thread::Object
def run
sleep 10
puts "Something in thread."
end
end
Foo::new.start!
sleep 5
puts "Something in main."
Will print out "Something in main."
and then "Something in thread."
.
Thread object module directly supports #alive?
and #shutdown!
methods only for thread manipulation. For other operations with the
thread, call directly object's #native_thread
property which contains
appropriate native Ruby Thread object. This setup is for avoiding
potential method name conflicts between module and user class.
Contributing
- Fork it.
- Create a branch (
git checkout -b 20101220-my-change
). - Commit your changes (
git commit -am "Added something"
). - Push to the branch (
git push origin 20101220-my-change
). - Create an Issue with a link to your branch.
- Enjoy a refreshing Diet Coke and wait.
Copyright
Copyright © 2010-2011 Martin Kozák. See LICENSE.txt
for
further details.