module EM::Nodes::Client::TaskFeature
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/em-nodes/client/task.rb, line 3 def initialize(*args) super(*args) @mutex = Mutex.new @tasks_hash = {} end
Public Instance Methods
on_task(task_id, data)
click to toggle source
# File lib/em-nodes/client/task.rb, line 9 def on_task(task_id, data) # redefine me # after task done, should call send_task_result(task_id, result) end
send_task_result(task_id, result)
click to toggle source
# File lib/em-nodes/client/task.rb, line 18 def send_task_result(task_id, result) send_task_result_internal(task_id, result) @mutex.synchronize { @tasks_hash.delete(task_id) } end
tasks()
click to toggle source
# File lib/em-nodes/client/task.rb, line 14 def tasks @tasks_hash.values end
Private Instance Methods
on_task_internal(task_id, data)
click to toggle source
# File lib/em-nodes/client/task.rb, line 25 def on_task_internal(task_id, data) obj = on_task(task_id, data) @mutex.synchronize { @tasks_hash[task_id] = obj } end