Module: Actor::Module::SuspendResume
- Defined in:
- lib/actor/module/suspend_resume.rb,
lib/actor/module/suspend_resume/handle.rb,
lib/actor/module/suspend_resume/controls.rb,
lib/actor/module/suspend_resume/configure.rb,
lib/actor/module/suspend_resume/assertions.rb,
lib/actor/module/suspend_resume/initialize.rb
Defined Under Namespace
Modules: Assertions, Configure, Controls, Handle, Initialize
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#suspend_queue ⇒ Object
31
32
33
|
# File 'lib/actor/module/suspend_resume.rb', line 31
def suspend_queue
@suspend_queue ||= Messaging::Queue::Substitute.build
end
|
#suspended ⇒ Object
Returns the value of attribute suspended.
14
15
16
|
# File 'lib/actor/module/suspend_resume.rb', line 14
def suspended
@suspended
end
|
Class Method Details
.included(cls) ⇒ Object
4
5
6
7
8
9
10
11
12
|
# File 'lib/actor/module/suspend_resume.rb', line 4
def self.included cls
cls.class_exec do
prepend Configure
prepend Handle
prepend Initialize
IncludeAssertions.(Assertions, self)
end
end
|
Instance Method Details
#handle_resume ⇒ Object
21
22
23
24
25
26
27
28
29
|
# File 'lib/actor/module/suspend_resume.rb', line 21
def handle_resume
self.suspended = false
until suspend_queue.empty?
deferred_message = suspend_queue.deq
send.(deferred_message, address)
end
end
|
#handle_suspend ⇒ Object
17
18
19
|
# File 'lib/actor/module/suspend_resume.rb', line 17
def handle_suspend
self.suspended = true
end
|