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:

  • (Boolean)


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

def dwp_running?
  !!@dwp_running
end

#dwp_shutdown?Boolean

Returns:

  • (Boolean)


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:

  • (Boolean)


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