0.0
No commit activity in last 3 years
No release in over 3 years
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.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

~> 1.0.0
~> 1.5.2
 Project Readme

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

  1. Fork it.
  2. Create a branch (git checkout -b 20101220-my-change).
  3. Commit your changes (git commit -am "Added something").
  4. Push to the branch (git push origin 20101220-my-change).
  5. Create an Issue with a link to your branch.
  6. Enjoy a refreshing Diet Coke and wait.

Copyright

Copyright © 2010-2011 Martin Kozák. See LICENSE.txt for further details.