Module: RubyIsForked::ForkCallback::ModuleMethods
- Defined in:
- lib/ruby_is_forked/fork_callback.rb
Instance Method Summary collapse
-
#fork_with_callback(*args) ⇒ Object
TODO: Might need to do this in a critical section.
Instance Method Details
#fork_with_callback(*args) ⇒ Object
TODO: Might need to do this in a critical section.
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/ruby_is_forked/fork_callback.rb', line 56 def fork_with_callback *args CALLBACK_BEFORE_CHILD.each { | proc | proc.call($$) } if block_given? result = fork_without_callback do CALLBACK_IN_CHILD.each { | proc | proc.call($$) } yield end CALLBACK_IN_PARENT.each { | proc | proc.call(result) } result else result = fork_without_callback if result # in parent CALLBACK_IN_PARENT.each { | proc | proc.call(result) } else # in child CALLBACK_IN_CHILD.each { | proc | proc.call($$) } end result end end |