U:RDoc::AnyMethod[iI" join:ETI"Thread#join;TF: publico:RDoc::Markup::Document: @parts[o:RDoc::Markup::Paragraph; [I"BThe calling thread will suspend execution and run this +thr+.;To:RDoc::Markup::BlankLineo; ; [I"ODoes not return until +thr+ exits or until the given +limit+ seconds have ;TI" passed.;T@o; ; [I"KIf the time limit expires, +nil+ will be returned, otherwise +thr+ is ;TI"returned.;T@o; ; [I"GAny threads not joined will be killed when the main program exits.;T@o; ; [I"QIf +thr+ had previously raised an exception and the ::abort_on_exception or ;TI"Q$DEBUG flags are not set, (so the exception has not yet been processed), it ;TI"$will be processed at this time.;T@o:RDoc::Markup::Verbatim; [ I"Ca = Thread.new { print "a"; sleep(10); print "b"; print "c" } ;TI"Ex = Thread.new { print "x"; Thread.pass; print "y"; print "z" } ;TI"Dx.join # Let thread x finish, thread a will be killed on exit. ;TI"#=> "axyz" ;T: @format0o; ; [I"=The following example illustrates the +limit+ parameter.;T@o; ; [I">y = Thread.new { 4.times { sleep 0.1; puts 'tick... ' }} ;TI"'puts "Waiting" until y.join(0.15) ;T; 0o; ; [I"This will produce:;T@o; ; [ I" tick... ;TI" Waiting ;TI" tick... ;TI" Waiting ;TI" tick... ;TI" tick...;T; 0: @fileI" thread.c;T:0@omit_headings_from_table_of_contents_below0I"7thr.join -> thr thr.join(limit) -> thr ;T0[I"(p1 = v1);T@7FI" Thread;TcRDoc::NormalClass00