Module: LokkaSh::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
14 15 16 |
# File 'lib/lokka-sh/forkable.rb', line 14 def _invoke raise NotImplementedError end |
#after_fork(&block) ⇒ Object
22 23 24 |
# File 'lib/lokka-sh/forkable.rb', line 22 def after_fork(&block) @after_fork = block end |
#before_fork(&block) ⇒ Object
18 19 20 |
# File 'lib/lokka-sh/forkable.rb', line 18 def before_fork(&block) @before_fork = block end |
#invoke(line, options = {}) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/lokka-sh/forkable.rb', line 5 def invoke(line, = {}) run_before_fork pid = fork do run_after_fork _invoke(line) end Process.waitpid(pid) end |
#run_after_fork(&block) ⇒ Object
30 31 32 |
# File 'lib/lokka-sh/forkable.rb', line 30 def run_after_fork(&block) @after_fork.call if @after_fork end |
#run_before_fork(&block) ⇒ Object
26 27 28 |
# File 'lib/lokka-sh/forkable.rb', line 26 def run_before_fork(&block) @before_fork.call if @before_fork end |