WindowsのRubyでThread内でプロセス作成すると止まっちゃう

Windows の Ruby で、Thread 内で新規プロセスを立ち上げようとすると、Thread 内で全体の動作を止めてしまうらしい。たとえば、

Thread.new do 
  `something.exe`
end

とやってみると、`something.exe` の処理が終わるのを待っているようだ。

Windows+Rubyで外部プロセスを立ち上げる時の注意 にまさにその情報が載っていた。Windows は、Windows::Process 等を使う必要があるみたいです。

require 'rubygems'
require 'win32/process'
require 'windows/synchronize'
require 'windows/process'
require 'windows/handle'
 
include Windows::Synchronize
include Windows::Process
include Windows::Handle
 
t = Thread.new do 
  Process.create('app_name' => 'something.exe')
end
puts "hello!"
t.join

のようにしたら、プロセス生成してもそこで止まることは無くなりました。

WindowsのRubyでThread内でプロセス作成すると止まっちゃう