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.



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

def dwp_number
  @dwp_number
end

Instance Method Details

#dwp_join(*args) ⇒ Object



91
92
93
# File 'lib/dat-worker-pool/worker.rb', line 91

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

#dwp_raise(*args) ⇒ Object



95
96
97
# File 'lib/dat-worker-pool/worker.rb', line 95

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

#dwp_running?Boolean

Returns:

  • (Boolean)


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

def dwp_running?
  !!@dwp_running
end

#dwp_shutdown?Boolean

Returns:

  • (Boolean)


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

def dwp_shutdown?
  !self.dwp_running?
end

#dwp_signal_shutdownObject



71
72
73
# File 'lib/dat-worker-pool/worker.rb', line 71

def dwp_signal_shutdown
  @dwp_running = false
end

#dwp_startObject



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

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:

  • (Boolean)


87
88
89
# File 'lib/dat-worker-pool/worker.rb', line 87

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

#initialize(runner, queue, number) ⇒ Object



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

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