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/initialize.rb
Defined Under Namespace
Modules: Configure, Controls, Handle, Initialize
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Instance Attribute Details
#suspended ⇒ Object
Returns the value of attribute suspended.
12
13
14
|
# File 'lib/actor/module/suspend_resume.rb', line 12
def suspended
@suspended
end
|
Class Method Details
.included(cls) ⇒ Object
4
5
6
7
8
9
10
|
# File 'lib/actor/module/suspend_resume.rb', line 4
def self.included(cls)
cls.class_exec do
prepend Configure
prepend Handle
prepend Initialize
end
end
|
Instance Method Details
#handle_resume ⇒ Object
19
20
21
22
23
24
25
26
27
|
# File 'lib/actor/module/suspend_resume.rb', line 19
def handle_resume
self.suspended = false
until suspend_queue.empty?
deferred_message = suspend_queue.deq
send.(deferred_message, address)
end
end
|
#handle_suspend ⇒ Object
15
16
17
|
# File 'lib/actor/module/suspend_resume.rb', line 15
def handle_suspend
self.suspended = true
end
|
#message_deferred?(message = nil, wait: nil) ⇒ Boolean
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'lib/actor/module/suspend_resume.rb', line 29
def message_deferred?(message=nil, wait: nil)
non_block = wait == false
begin
msg = suspend_queue.deq(true)
rescue ThreadError
end
if message.nil?
msg ? true : false
else
msg == message
end
end
|
#suspended? ⇒ Boolean
44
45
46
|
# File 'lib/actor/module/suspend_resume.rb', line 44
def suspended?
@suspended == true
end
|