TODO: Write a gem description
Add this line to your application's Gemfile:
And then execute:
Or install it yourself as:
$ gem install sane_timeout
TODO: Write usage instructions here
- on line 69, I had tried doing x.join based on the standard lib doing the same thing with the y thread. I assumed that kill is not synchromous so it's necessary to wait for x to die. However, doing this causes many things to break. I haven't been able to figure out why.
- related, is there any reason to kill y before returning x.value?
- determine best way to install sane_timeout so that it replaces Timeout. possibly offer to modes, one where Timeout is overwritten, another where sane_timeout is invoked in its own namespace (SaneTimeout)
- remove the weird inner exception catching/filtering entirely?
- better name?
- There is redundant code between test_timeout.rb and test_sane_timeout.rb because I wanted to annotate in the former and be DRY in the latter. Maybe this can somehow be improved.
- hyphen or underscore?
odd design choice in standard lib:
- same type of error is raised inside thread and outside when specified
- when not specified, Exception is raised inside, StandardError is raised outside