Method: Collective::Utilities::Process#wait_until_deadline

Defined in:
lib/collective/utilities/process.rb

#wait_until_deadline(pid, deadline) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/collective/utilities/process.rb', line 5

def wait_until_deadline( pid, deadline )
  status   = nil
  interval = 0.125
  begin # execute at least once to get status
    dummy, status = wait2_now(pid)
    break if status
    #log "Waiting for #{pid}", "Sleeping #{interval}" if false
    sleep(interval)
    interval *= 2 if interval < 1.0
  end while Time.now.to_f < deadline
  status
end