Module: Lokka::Sh::Forkable
Instance Method Summary collapse
- #_invoke ⇒ Object
- #after_fork(&block) ⇒ Object
- #before_fork(&block) ⇒ Object
- #invoke(line, options = {}) ⇒ Object
- #run_after_fork(&block) ⇒ Object
- #run_before_fork(&block) ⇒ Object
Methods included from Helpers
Instance Method Details
#_invoke ⇒ Object
15 16 17 |
# File 'lib/lokka/sh/forkable.rb', line 15 def _invoke raise NotImplementedError end |
#after_fork(&block) ⇒ Object
23 24 25 |
# File 'lib/lokka/sh/forkable.rb', line 23 def after_fork(&block) @after_fork = block end |
#before_fork(&block) ⇒ Object
19 20 21 |
# File 'lib/lokka/sh/forkable.rb', line 19 def before_fork(&block) @before_fork = block end |
#invoke(line, options = {}) ⇒ Object
6 7 8 9 10 11 12 13 |
# File 'lib/lokka/sh/forkable.rb', line 6 def invoke(line, = {}) run_before_fork pid = fork do run_after_fork _invoke(line) end Process.waitpid(pid) end |
#run_after_fork(&block) ⇒ Object
31 32 33 |
# File 'lib/lokka/sh/forkable.rb', line 31 def run_after_fork(&block) @after_fork.call if @after_fork end |
#run_before_fork(&block) ⇒ Object
27 28 29 |
# File 'lib/lokka/sh/forkable.rb', line 27 def run_before_fork(&block) @before_fork.call if @before_fork end |