EventMachine::DeferrableChildProcess.open
実際に何らかのエラー処理を行うのに問題があります。うまくいけば、私はそれを間違っています。次に例を示します。
require "eventmachine"
EM.run do
cp = EM::DeferrableChildProcess.open("ls /trololo")
cp.callback { |data| puts "Received some data: '#{data}'" }
cp.errback { |err| puts "Failed: #{err.inspect}" }
end
このコードの結果は (実際にはシステムにディレクトリがないと仮定して/trolol
)、"Failed: <SomeErrorObject>" になると思います。代わりに、「一部のデータを受信しました: ''」が表示されます。さらにひどいことに、("ls: cannot access /trololo: No such file or directory")によって引き起こされたエラー メッセージls
が何らかの形で stderr に出力されます。
私は何か間違ったことをしていますか、それとも基本的にエラー処理はありませEM::DeferrableChildProcess.open
んか? と同様の結果が得られましEM.popen
た。