2013-04-05 2 views
2

기존의 코코아 애플리케이션에 모노 런타임을 임베드합니다. 나는 몇 가지 관리 코드를 실행 한 후 GitHub의 (마스터 지점) 및 종료 응용 프로그램의 최신 런타임을 구축 한 것은 나에게주는 이것을 mono_jit_cleanup()시 :임베디드 모노 : mono_jit_cleanup() 호출시 EXC_BAD_ACCESS (SIGSEGV)

https://dl.dropbox.com/u/108566029/BAD_ACCESS.png

내가 통해 HTTP 요청을 보내려고 할 때 그것은 단지 재현 것 HttpWebRequest. 특히 GetRequestStream()을 호출하면. 코드가 제대로 작동하고 모든 관리되는 개체가 올바르게 삭제됩니다. mono_jit_cleanup()은 한 번만 호출됩니다. 이 문제는 런타임을 종료하는 동안에 만 발생합니다.

이 또한 최신 Mono 2.10.x 분기에서도 재생됩니다. 그러나 나는 SIGSEGV를 얻는다.

이것은 다른 위치에서 발생할 수 있으므로 스레딩 문제로 보입니다.

그렇다면 어떻게 런타임을 올바르게 종료해야합니까? mon_jit_cleanup() 호출로 런타임을 올바르게 처리 할 수 ​​있습니까? 그리고 런타임을 처리하지 않고 애플리케이션을 종료 할 수 있습니까 (mono_jit_cleanup() 호출 없음)?


P.S.
OSX 10.8.3에서 Mono v2.0 (실제로 3.5) 런타임의 32 비트 빌드를 사용하고 있습니다. libmono-2.0.1.dylib와 연결되므로 Boehm GC 여야합니다. 같은 문제가 SGen GC에서도 재현됩니다.

PPS
는 여기에 또 다른 오류 https://dl.dropbox.com/u/108566029/SIGABRT.png

답변

0

표준 모노 실행 파일이 mono_jit_cleanup() 잘 호출, 그래서 우리는 당신이 전화하는거야 정확히 어떤 코드에 대한 자세한 내용을 알 필요가 줄을, 이동 등

하는 스레드

어쨌든 해당 기능을 호출하지 않고 애플리케이션을 종료 할 수 있습니다.

관련 문제