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.



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

def dwp_number
  @dwp_number
end

Instance Method Details

#dwp_join(*args) ⇒ Object



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

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

#dwp_raise(*args) ⇒ Object



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

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

#dwp_running?Boolean

Returns:

  • (Boolean)


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

def dwp_running?
  !!@dwp_running
end

#dwp_shutdown?Boolean

Returns:

  • (Boolean)


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

def dwp_shutdown?
  !self.dwp_running?
end

#dwp_signal_shutdownObject



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

def dwp_signal_shutdown
  @dwp_running = false
end

#dwp_startObject



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

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)


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

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

#initialize(runner, queue, number) ⇒ Object



55
56
57
58
59
# File 'lib/dat-worker-pool/worker.rb', line 55

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