助田です。

wanabe wrote:
> Rubyの想定しているところに無理やり入ってしまえばいい、と考えますと
> Threadオブジェクトを作ってその中で処理してしまうのはどうでしょうか。

ありがとうございます。
無理やり入る方法がわからなくて悩んでいたのですが、Threadオブジェクト
を生成するという発想はありませんでした。
ただ、Threadを利用する方法がいいのかどうか、今の私にはよくわかりません。

一旦 begin rescue end でくくって例外を補足することはできそうな
感じなので、EVENTSINK_Invokeを抜けた後で例外をraiseする方法が
ないかと考えてました。
rescueの中でエラー情報を出力すれば、raiseしなくても抜けた直後に
スクリプトの実行が終了できさえすればいいのですが..。

> たとえば、思いつきの実験的コードではありますがこんな感じで。

ほぼ、そのまま試してみたのですが、make test-all TESTS=win32ole
は途中でハングアップしました。
詳しいことは、まだ時間が取れないので調べてません。

あと、[ruby-dev:35450]のスクリプトは、異常終了しなくなりましたが
例外も起こりませんでした。

Thread#joinとThread.abort_on_exceptionも使えば何とかなるのかな...。

  助田 雅紀