Module: DatWorkerPool::Worker::InstanceMethods

Defined in:
lib/dat-worker-pool/worker.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#dwp_numberObject (readonly)

Returns the value of attribute dwp_number.



45
46
47
# File 'lib/dat-worker-pool/worker.rb', line 45

def dwp_number
  @dwp_number
end

Instance Method Details

#dwp_join(*args) ⇒ Object



78
79
80
# File 'lib/dat-worker-pool/worker.rb', line 78

def dwp_join(*args)
  @dwp_thread.join(*args) if self.dwp_thread_alive?
end

#dwp_raise(*args) ⇒ Object



82
83
84
# File 'lib/dat-worker-pool/worker.rb', line 82

def dwp_raise(*args)
  @dwp_thread.raise(*args) if self.dwp_thread_alive?
end

#dwp_running?Boolean

Returns:



62
63
64
# File 'lib/dat-worker-pool/worker.rb', line 62

def dwp_running?
  !!@dwp_running
end

#dwp_shutdown?Boolean

Returns:



66
67
68
# File 'lib/dat-worker-pool/worker.rb', line 66

def dwp_shutdown?
  !self.dwp_running?
end

#dwp_signal_shutdownObject



58
59
60
# File 'lib/dat-worker-pool/worker.rb', line 58

def dwp_signal_shutdown
  @dwp_running = false
end

#dwp_startObject



53
54
55
56
# File 'lib/dat-worker-pool/worker.rb', line 53

def dwp_start
  @dwp_running = true
  @dwp_thread ||= Thread.new{ dwp_work_loop }
end

#dwp_thread_alive?Boolean

this is needed because even if the running flag has been set to false (meaning the worker has been shutdown) the thread may still be alive because its work is taking a long time or its still trying to shut down

Returns:



74
75
76
# File 'lib/dat-worker-pool/worker.rb', line 74

def dwp_thread_alive?
  !!(@dwp_thread && @dwp_thread.alive?)
end

#initialize(runner, queue, number) ⇒ Object



47
48
49
50
51
# File 'lib/dat-worker-pool/worker.rb', line 47

def initialize(runner, queue, number)
  @dwp_runner, @dwp_queue, @dwp_number = runner, queue, number
  @dwp_running = false
  @dwp_thread  = nil
end