Class: RSched::Engine::TimerThread

Inherits:
Object
  • Object
show all
Includes:
MonitorMixin
Defined in:
lib/rsched/engine.rb

Instance Method Summary collapse

Constructor Details

#initialize(lock, extend_timeout, kill_timeout, kill_retry) ⇒ TimerThread

Returns a new instance of TimerThread.



189
190
191
192
193
194
195
196
197
198
199
200
# File 'lib/rsched/engine.rb', line 189

def initialize(lock, extend_timeout, kill_timeout, kill_retry)
  super()
  @lock = lock
  @extend_timeout = extend_timeout
  @kill_timeout = kill_timeout
  @kill_retry = kill_retry
  @kill_time = nil
  @kill_proc = nil
  @extend_time = nil
  @token = nil
  @finished = false
end

Instance Method Details

#init_proc(kill_proc) ⇒ Object



202
203
204
# File 'lib/rsched/engine.rb', line 202

def init_proc(kill_proc)
  @kill_proc = kill_proc
end

#joinObject



210
211
212
# File 'lib/rsched/engine.rb', line 210

def join
  @thread.join
end

#reset_tokenObject



223
224
225
226
227
# File 'lib/rsched/engine.rb', line 223

def reset_token
  synchronize do
    @token = nil
  end
end

#set_token(token) ⇒ Object



214
215
216
217
218
219
220
221
# File 'lib/rsched/engine.rb', line 214

def set_token(token)
  synchronize do
    now = Time.now.to_i
    @extend_time = now + @extend_timeout
    @kill_time = now + @kill_timeout
    @token = token
  end
end

#shutdownObject



229
230
231
# File 'lib/rsched/engine.rb', line 229

def shutdown
  @finished = true
end

#startObject



206
207
208
# File 'lib/rsched/engine.rb', line 206

def start
  @thread = Thread.new(&method(:run))
end