Module: EM::Nodes::Server::TaskFeature

Defined in:
lib/em-nodes/server/task.rb

Instance Method Summary collapse

Instance Method Details

#initialize(*args) ⇒ Object



5
6
7
8
9
10
# File 'lib/em-nodes/server/task.rb', line 5

def initialize(*args)
  super(*args)
  @mutex = Mutex.new
  @tasks = {}
  @task_inc = 0
end

#on_reschedule_tasks(values) ⇒ Object



26
27
28
# File 'lib/em-nodes/server/task.rb', line 26

def on_reschedule_tasks(values)
  # redefine me
end

#on_task_result(res) ⇒ Object



22
23
24
# File 'lib/em-nodes/server/task.rb', line 22

def on_task_result(res)
  # redefine me
end

#send_task(data) ⇒ Object



16
17
18
19
20
# 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_countObject



12
13
14
# File 'lib/em-nodes/server/task.rb', line 12

def task_count
  @mutex.synchronize { @tasks.size }
end

#unbindObject



30
31
32
33
34
# File 'lib/em-nodes/server/task.rb', line 30

def unbind
  super
  on_reschedule_tasks(@tasks.values)
  @mutex.synchronize { @tasks.clear }
end