0
Ruby 2.3.3 (Win32)에서 성공한 응용 프로그램을 종료하고 싶습니다. 그 스크립트에서 프로그램을 종료하려고하면 segfault가 생깁니다.세그 폴트없이 rb_load_protect를 통해로드 된 스크립트에서 exit를 호출하는 방법
# script.rb
loop do
# do something
exit 0 if foo()
break if bar()
end
foo
및 bar
그냥 Qtrue
또는 Qfalse
반환됩니다
나는 함께 스크립트를로드
ruby_init();
int ruby_state = 0;
VALUE script = rb_str_new_cstr("./script.rb");
rb_load_protect(script, 0, &ruby_state);
ruby_cleanup(ruby_state);
그리고 세그먼트 폴트를 생성합니다. 또한 ruby_cleanup
을 Ruby에서 호출 된 함수에 넣으려고했지만 동일한 segfault를 생성합니다.
Ruby VM을 중지 시키거나 적어도 현재 스크립트를 중지 할 수 있습니까?
'exit!'시도해보세요. 콜백을 무시합니다. –
감사합니다. – Sisyphe
그런 다음 해결 된 것으로 표시하십시오. 나는 대답을 추가했다. :-) –