Class: EventMachine::SpawnedProcess
- Inherits:
-
Object
- Object
- EventMachine::SpawnedProcess
- Defined in:
- lib/em/spawnable.rb
Overview
Support for Erlang-style processes.
Instance Method Summary (collapse)
-
- (Object) notify(*x)
(also: #run, #resume)
Send a message to the spawned process.
-
- (Object) set_receiver(blk)
Instance Method Details
- (Object) notify(*x) Also known as: run, resume
Send a message to the spawned process
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/em/spawnable.rb', line 31 def notify *x me = self EM.next_tick { # A notification executes in the context of this # SpawnedProcess object. That makes self and notify # work as one would expect. # y = me.call(*x) if y and y.respond_to?(:pull_out_yield_block) a,b = y.pull_out_yield_block set_receiver a self.notify if b end } end |
- (Object) set_receiver(blk)
49 50 51 52 53 54 |
# File 'lib/em/spawnable.rb', line 49 def set_receiver blk (class << self ; self ; end).class_eval do remove_method :call if method_defined? :call define_method :call, blk end end |