2014-01-10 7 views
0

내가 유지 관리하는 프로그램에서이 오류 (Xlib : 응답이 0x2 형식으로 손실 됨)가 발생했습니다 (원래 개발자가 아닙니다).Xlib : 응답 유형에서 시퀀스가 ​​손실 됨 0x2

나는이 프로그램이 그 툴킷을 사용하여 작성 되었기 때문에 Xlib 프로그래밍의 전문가가 아니며 태그에 모티브를 포함 시켰습니다. 게시하기 전에 조사를 해본 결과,이 오류가 UI 자체를 업데이트하려고 시도하는 스레드 (UI의 것과 다릅니다) 때문인 것으로 나타났습니다. 코드에서 검색 XTestFakeKeyEvent 및 XtIsManaged에 대한 호출이 UI에서 다른 스레드에서 사용 된 것으로 확인되었습니다.

제 질문은 :이 두 함수가이 오류의 원인 일 수 있었습니까?

GUI 만 업데이트하면 (예 : 레이블 텍스트 설정) 해당 정렬 문제가 발생할 수 있다고 생각합니다. (이 두 함수는 GUI에 직접적인 영향을 미치지 않습니다.)하지만 솔직히 알지 못합니다 ....

답변

0

XTestFakeKeyEvent가 가장 큰 원인 일 수 있습니다. 이벤트 대기열을 망칠 수있는 주요 보도/릴리스 이벤트를 주입합니다.

XtIsManaged는 변경 사항을 발생시키지 않지만 실행 중 관리 상태가 변경되면 잘못된 결과를 줄 수 있습니다.

+0

감사합니다. 그 사이에 나는 코드를 수정하기 시작했습니다. 기본적으로 파이프를 추가하여 주요 루프의 이벤트 소스 중 하나 (XtAppAddInput을 올바르게 호출 한 경우)로 추가 한 다음 이동해야합니다. – fraben