module EM::Nodes::Server::TaskFeature
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/em-nodes/server/task.rb, line 5 def initialize(*args) super(*args) @mutex = Mutex.new @tasks = {} @task_inc = 0 end
Public Instance Methods
on_reschedule_tasks(values)
click to toggle source
# File lib/em-nodes/server/task.rb, line 26 def on_reschedule_tasks(values) # redefine me end
on_task_result(res)
click to toggle source
# File lib/em-nodes/server/task.rb, line 22 def on_task_result(res) # redefine me end
send_task(data)
click to toggle source
# File lib/em-nodes/server/task.rb, line 16 def send_task(data) task_id = next_task_id add_task(task_id, data) send_task_internal(task_id, data) end
task_count()
click to toggle source
# File lib/em-nodes/server/task.rb, line 12 def task_count @mutex.synchronize { @tasks.size } end
unbind()
click to toggle source
Calls superclass method
# File lib/em-nodes/server/task.rb, line 30 def unbind super on_reschedule_tasks(@tasks.values) @mutex.synchronize { @tasks.clear } end
Private Instance Methods
add_task(task_id, data)
click to toggle source
# File lib/em-nodes/server/task.rb, line 43 def add_task(task_id, data) @mutex.synchronize { @tasks[task_id] = data } end
del_task(task_id)
click to toggle source
# File lib/em-nodes/server/task.rb, line 47 def del_task(task_id) @mutex.synchronize { @tasks.delete(task_id) } end
next_task_id()
click to toggle source
# File lib/em-nodes/server/task.rb, line 51 def next_task_id @mutex.synchronize { @task_inc += 1 } end
on_task_result_internal(task_id, res)
click to toggle source
# File lib/em-nodes/server/task.rb, line 38 def on_task_result_internal(task_id, res) del_task(task_id) on_task_result(res) end