Current Path : /usr/local/share/ri/1.8/system/Thread/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //usr/local/share/ri/1.8/system/Thread/join-i.yaml |
--- !ruby/object:RI::MethodDescription aliases: [] block_params: comment: - !ruby/struct:SM::Flow::P body: The calling thread will suspend execution and run <em>thr</em>. Does not return until <em>thr</em> exits or until <em>limit</em> seconds have passed. If the time limit expires, <tt>nil</tt> will be returned, otherwise <em>thr</em> is returned. - !ruby/struct:SM::Flow::P body: Any threads not joined will be killed when the main program exits. If <em>thr</em> had previously raised an exception and the <tt>abort_on_exception</tt> and <tt>$DEBUG</tt> flags are not set (so the exception has not yet been processed) it will be processed at this time. - !ruby/struct:SM::Flow::VERB body: " a = Thread.new { print "a"; sleep(10); print "b"; print "c" }\n x = Thread.new { print "x"; Thread.pass; print "y"; print "z" }\n x.join # Let x thread finish, a will be killed on exit.\n" - !ruby/struct:SM::Flow::P body: <em>produces:</em> - !ruby/struct:SM::Flow::VERB body: " axyz\n" - !ruby/struct:SM::Flow::P body: The following example illustrates the <em>limit</em> parameter. - !ruby/struct:SM::Flow::VERB body: " y = Thread.new { 4.times { sleep 0.1; puts 'tick... ' }}\n puts "Waiting" until y.join(0.15)\n" - !ruby/struct:SM::Flow::P body: <em>produces:</em> - !ruby/struct:SM::Flow::VERB body: " tick...\n Waiting\n tick...\n Waitingtick...\n\n tick...\n" full_name: Thread#join is_singleton: false name: join params: | thr.join => thr thr.join(limit) => thr visibility: public