module Process
def self.timed_waitpid(pid, max_time)
def self.timed_waitpid(pid, max_time) done = false start_time = Time.now while Time.now - start_time < max_time && !done done = Process.waitpid(pid, Process::WNOHANG) sleep 0.1 if !done end return !!done rescue Errno::ECHILD return true end