Rubyについて Part 16
■ このスレッドは過去ログ倉庫に格納されています
0561デフォルトの名無しさん
2005/08/23(火) 00:33:36ちょっと違うが、以前似たような問題(*1)に遭遇した時の解決方法を書いとく。
※念のため言っとくと、マルチスレッドなOSじゃないと使えない方法。
forkして、子供側でマッチを行う。完了したら終了ステータスでマッチに成功したかだけを返すようにする。
で、親側は子供の終了をn秒待って、それまでに終了しなかったら、子供をkillして「マッチ失敗」を返す。
n秒以内に帰ってきたら終了ステータスを元に結果を返す。
(*1)複雑な正規表現に文字列がマッチするかだけをチェックする処理で、たまにマッチが終わらなかった。
※正規表現のマッチ中はrubyのスレッドが切り替わらないのでtimeoutが使えない。
■ このスレッドは過去ログ倉庫に格納されています