2011-03-14 2 views
0

레일 애플리케이션에 FFI binding to a custom RPC system이 있습니다. 아쉽게도 C 코드는 RPC 서버에 연결할 수 없을 때 exit()을 호출하여 전체 Rails 응용 프로그램을 종료합니다.Ruby FFI - exit()에 대한 C 호출 트래핑

Ruby에서 exit()에 대한 호출을 걸러 낼 수 있습니까? 차라리 C 코드를 변경하지 않아도됩니다.

답변

1

함수 호출을 트랩 할 수 없습니다. 어쩌면 당신은 더미 코드 exit()으로 C 코드를 링크 할 수 있습니다. 실제로는 종료하지 않을 것입니다.

클리너 솔루션은 C 코드를 변경하여 적절한 라이브러리 동작을 제공합니다.

또한 RPC 호출을하기 전에 루비를 포크 할 수 있습니다. 값 비싼 측면 성능은 현명하지만 약간의 문제도 해결할 수 있습니다.