Module: Rails::Sh::Forkable
Instance Method Summary collapse
- #_invoke ⇒ Object
- #after_fork(&block) ⇒ Object
- #before_fork(&block) ⇒ Object
- #invoke(line) ⇒ Object
- #run_after_fork(&block) ⇒ Object
- #run_before_fork(&block) ⇒ Object
Instance Method Details
#_invoke ⇒ Object
13 14 15 |
# File 'lib/rails/sh/forkable.rb', line 13 def _invoke raise NotImplementedError end |
#after_fork(&block) ⇒ Object
21 22 23 |
# File 'lib/rails/sh/forkable.rb', line 21 def after_fork(&block) @after_fork = block end |
#before_fork(&block) ⇒ Object
17 18 19 |
# File 'lib/rails/sh/forkable.rb', line 17 def before_fork(&block) @before_fork = block end |
#invoke(line) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/rails/sh/forkable.rb', line 4 def invoke(line) run_before_fork pid = fork do run_after_fork _invoke(line) end Process.waitpid(pid) end |
#run_after_fork(&block) ⇒ Object
29 30 31 |
# File 'lib/rails/sh/forkable.rb', line 29 def run_after_fork(&block) @after_fork.call if @after_fork end |
#run_before_fork(&block) ⇒ Object
25 26 27 |
# File 'lib/rails/sh/forkable.rb', line 25 def run_before_fork(&block) @before_fork.call if @before_fork end |