Module: Zoidberg::Shell::InstanceMethods
- Defined in:
- lib/zoidberg/shell.rb
Instance Method Summary collapse
-
#_zoidberg_proxy(oxy = nil) ⇒ NilClass, Zoidberg::Proxy
(also: #current_self, #current_actor)
Provide access to the proxy instance from the real instance.
-
#_zoidberg_signal_interface ⇒ Object
Initialize the signal instance if not.
-
#after(interval) { ... } ⇒ Timer
Register an action to run after interval.
- #alive? ⇒ TrueClass, FalseClass
-
#broadcast(name, arg = nil) ⇒ TrueClass, FalseClass
Broadcast a signal to all waiters.
-
#every(interval) { ... } ⇒ Timer
Register a recurring action.
-
#link(inst) ⇒ TrueClass
Link given shelled instance to current shelled instance to handle any exceptions raised from async actions.
-
#signal(name, arg = nil) ⇒ TrueClass, FalseClass
Send a signal to single waiter.
- #timer ⇒ Timer
-
#wait_for(name) ⇒ Object
(also: #wait)
Wait for a given signal.
Instance Method Details
#_zoidberg_proxy(oxy = nil) ⇒ NilClass, Zoidberg::Proxy Also known as: current_self, current_actor
Provide access to the proxy instance from the real instance
257 258 259 260 261 262 |
# File 'lib/zoidberg/shell.rb', line 257 def _zoidberg_proxy(oxy=nil) if(oxy) @_zoidberg_proxy = oxy end @_zoidberg_proxy end |
#_zoidberg_signal_interface ⇒ Object
Initialize the signal instance if not
189 190 191 192 193 194 |
# File 'lib/zoidberg/shell.rb', line 189 def _zoidberg_signal_interface unless(@_zoidberg_signal) @_zoidberg_signal = ::Zoidberg::Signal.new(:cache_signals => self.class.option?(:cache_signals)) end @_zoidberg_signal end |
#after(interval) { ... } ⇒ Timer
Register an action to run after interval
218 219 220 |
# File 'lib/zoidberg/shell.rb', line 218 def after(interval, &block) timer.after(interval, &block) end |
#alive? ⇒ TrueClass, FalseClass
249 250 251 |
# File 'lib/zoidberg/shell.rb', line 249 def alive? !respond_to?(:_zoidberg_destroyed) end |
#broadcast(name, arg = nil) ⇒ TrueClass, FalseClass
Broadcast a signal to all waiters
235 236 237 |
# File 'lib/zoidberg/shell.rb', line 235 def broadcast(name, arg=nil) current_self._zoidberg_signal_interface.broadcast(*[name, arg].compact) end |
#every(interval) { ... } ⇒ Timer
Register a recurring action
209 210 211 |
# File 'lib/zoidberg/shell.rb', line 209 def every(interval, &block) timer.every(interval, &block) end |
#link(inst) ⇒ TrueClass
Link given shelled instance to current shelled instance to handle any exceptions raised from async actions
271 272 273 274 |
# File 'lib/zoidberg/shell.rb', line 271 def link(inst) inst._zoidberg_link = current_self true end |
#signal(name, arg = nil) ⇒ TrueClass, FalseClass
Send a signal to single waiter
227 228 229 |
# File 'lib/zoidberg/shell.rb', line 227 def signal(name, arg=nil) current_self._zoidberg_signal_interface.signal(*[name, arg].compact) end |
#timer ⇒ Timer
197 198 199 200 201 202 |
# File 'lib/zoidberg/shell.rb', line 197 def timer unless(@_zoidberg_timer) @_zoidberg_timer = Timer.new end @_zoidberg_timer end |
#wait_for(name) ⇒ Object Also known as: wait
Wait for a given signal
243 244 245 |
# File 'lib/zoidberg/shell.rb', line 243 def wait_for(name) defer{ current_self._zoidberg_signal_interface.wait_for(name) } end |