2011-03-14 39 views
0

我有一個FFI binding to a custom RPC system Rails應用程序。不幸的是,C代碼在無法連接到RPC服務器時調用exit(),終止了整個Rails應用程序。紅寶石FFI - 誘捕C調用退出()

是否有可能捕獲調用在Ruby中exit()?我寧願不必更改C代碼。

回答

1

您不能捕獲一個函數調用。但是,也許你可以將C代碼與一個不會真正退出的虛擬exit()函數鏈接起來。

的清潔的解決方案是迄今爲止改變C代碼給它一個正確的庫行爲。

你也可以在進行RPC調用之前岔開紅寶石,在昂貴的一面性能明智一些,但也會解決這個問題太...