2011-04-01 2 views
0

메신저 [오류로 인해 개념 글타래]과, 시간의 일이 좋은 것 wxThread를 사용하여이 메신저, 언젠가 .... 예기치 않은 결과를 제공 오류와 같은 : -wxWidget 오류, wxWidget 사용

ass8-1-login_report: pthread_mutex_lock.c:62: __pthread_mutex_lock: Assertion `mutex->__data.__owner == 0' failed. 

사람이 오류

답변

0

기본 문제는 Thread, wxThread입니다. 기본적으로 스레드는 Detatched이며, 작업이 끝나면 자동으로 삭제됩니다. 여기에 스레드가 살아있을 때
if (obj-> IsAlive())
, 아무 문제가 없지만 스레드가 끝날 때 이것을 확인했습니다. `if (obj -> IsAlive)는 스레드 삭제시 아무런 문제가 없으므로 문제를 나타냅니다. 스레드의 객체입니다. [그것은 주요한 problme이었다]. extern 변수를 사용하여 스레드가 라이브인지 죽었는지 확인합니다. 이제는 코드가 잘 작동합니다.

+0

이 IsAlive() wxThread funcion의 오용으로 인해 오류가 발생했습니다. – Arjun

1

Pthread mutex assertion error

업데이트의 의미는 무엇인지 말해 줄 수하십시오 : 당신은 아마 메인 스레드가 아닌 다른 스레드에서 WX GUI를 액세스 할 수 있습니다. GUI 관련 함수를 호출하거나 메인 스레드를 제외한 다른 스레드에서 wxWidgets GUI 요소를 인스턴스화하지 마십시오.

경우에 따라 GUI 액세스가 wxMutexGUIEnter 및 wxMutexGUILeave 호출로 래핑되는 경우 다른 스레드에서 GUI에 액세스 할 수도 있지만 권장하지는 않습니다.

+0

선생님, 저는 이것을 이해하려고했으나, 뮤텍스는 무엇입니까? 이런 종류의 오류를 제거하기 위해 이것을 사용합니까? – Arjun