thr.join â thr
thr.join(limit) â thr
thr.join(limit) â thr
Instance Public methods
The calling thread will suspend execution and run thr. Does not
return until thr exits or until limit seconds have
passed. If the time limit expires, nil
will be returned,
otherwise thr is returned.
Any threads not joined will be killed when the main program exits. If
thr had previously raised an exception and the
abort_on_exception
and $DEBUG
flags are not set
(so the exception has not yet been processed) it will be processed at this
time.
a = Thread.new { print "a"; sleep(10); print "b"; print "c" } x = Thread.new { print "x"; Thread.pass; print "y"; print "z" } x.join # Let x thread finish, a will be killed on exit.
produces:
axyz
The following example illustrates the limit parameter.
y = Thread.new { 4.times { sleep 0.1; puts 'tick... ' }} puts "Waiting" until y.join(0.15)
produces:
tick... Waiting tick... Waitingtick... tick...
Please login to continue.