0

カスタム RPC システムへの FFI バインディングを備えた Rails アプリケーションがあります。残念ながら、C コードはexit()RPC サーバーに接続できないときに呼び出し、Rails アプリケーション全体を終了させます。

exit()Rubyで呼び出しをトラップすることは可能ですか? Cコードを変更する必要はありません。

4

1 に答える 1

1

関数呼び出しをトラップすることはできません。exit()ただし、実際には終了しないダミー関数と C コードをリンクすることもできます。

よりクリーンな解決策は、C コードを変更して適切なライブラリの動作を与えることです。

また、RPC 呼び出しを行う前に Ruby で fork することもできます。これは、パフォーマンス面で少し高価ですが、問題も解決します...

于 2011-03-14T16:59:49.883 に答える