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.



184
185
186
187
188
189
190
191
192
193
194
195
# File 'lib/rsched/engine.rb', line 184

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



197
198
199
# File 'lib/rsched/engine.rb', line 197

def init_proc(kill_proc)
  @kill_proc = kill_proc
end

#joinObject



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

def join
  @thread.join
end

#reset_tokenObject



218
219
220
221
222
# File 'lib/rsched/engine.rb', line 218

def reset_token
  synchronize do
    @token = nil
  end
end

#set_token(token) ⇒ Object



209
210
211
212
213
214
215
216
# File 'lib/rsched/engine.rb', line 209

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



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

def shutdown
  @finished = true
end

#startObject



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

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