2010-06-15 5 views
1

런타임 중에 이러한 종류의 교착 상태를 감지하는 데 사용할 수있는 기법이나 도구가 있습니까? 작업자 스레드에서오래된 뮤텍스 검색

그림이 (몇 가지 중 하나, 일반적으로 4-6)

더 일반적으로
try 
    WaitForSingleObject(myMutex); 
    DoSTuffThatMightCauseAnException; 
except 
    ReleaseMutex(myMutex); 
end; 

또는 버그 이런 종류의를 피하기위한 디자인 패턴이있다?

나는 더 이상 해킹 실행 더 나은 코딩 스타일이 뮤텍스 릴리스 제외/마침내 대신 시도의 시도/사용하는 것입니다

+0

버그 란 무엇입니까? – allenporter

+0

@allenporter : 뮤텍스는 예외가 발생할 때만 해제되므로 정상적인 실행으로 인해 뮤텍스가 해제되지 않습니다 – sum1stolemyname

답변

6

(또는 자원 릴리스의 다른 종류의 후 작은 전형 주택에 위의 코드를 코딩, 그 이유는 다음과 같습니다.

try 
    WaitForSingleObject(myMutex); 
    try 
    DoSTuffThatMightCauseAnException; 
    finally 
    ReleaseMutex(myMutex); 
    end; 
except 
    ... 
end;