Many headed is a trivial little application of the unix fork mechanism.
It's designed to supervise N workers (the heads of the hydra), restarting them if they fail to complete successfully.
The usage is as follows:
require "many-headed" head_number = ManyHeaded.hydra 5 # We now have 5 processes at this point, plus the original process acting as a supervisor. some_code
If any of the heads fails (exits with a non-zero status code - e.g. due to an uncaught exception), it will restart automatically from the point at which hydra was called.
Note on Patches/Pull Requests
Fork the project.
Make your feature addition or bug fix.
Add tests for it. This is important so I don't break it in a future version unintentionally.
Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
Send me a pull request. Bonus points for topic branches.
Copyright © 2010 David R. MacIver. See LICENSE for details.