Join threads before close pipes.

closing a FD interrupts threads which uses the FD.
rb_thread_io_blocking_region (for write()) checks an interrupt after write() is finished.
So, joining the thread after closing() may raise "IOError: stream closed".



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e