Я хочу, чтобы созданный мною поток умер, если он не завершится через определенное время. Есть ли какой-нибудь изящный и / или идиоматический способ сделать это? Прямо сейчас я подумываю создать поток наблюдателя:
def myfunc
t = Thread.new{
#do stuff
}
# watcher thread
Thread.new{
result = t.join(20) # join returns nil if it timed out
t.kill if result.nil?
}
# continue on asynchronously from both threads
end