관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

ReleaseMutex 본문

API 관련/Win32 API 함수

ReleaseMutex

님투 2007. 11. 8. 23:21
반응형

ReleaseMutex

지정된 뮤텍스 오브젝트의 소유권을 해방합니다.

BOOL ReleaseMutex(
    HANDLE hMutex   // 뮤텍스의 핸들
);

KERNEL32.DLL

인수

hMutex

뮤텍스 오브젝트의 핸들을 지정합니다.이 핸들은 CreateMutex 함수 또는 OpenMutex 함수에 의해서 돌려주어집니다.

반환값

성공하면 0 이외의 값이 돌아갑니다.

실패하면 0 하지만 돌아갑니다.확장 에러 정보를 취득하려면 , GetLastError 함수를 사용합니다.

해설

호출 스렛드가 지정된 뮤텍스 오브젝트를 소유하고 있지 않는 경우는, 이 함수는 실패합니다.

스렛드는 WaitForSingleObject 함수등의 대기 함수를 호출할 때에 뮤텍스 오브젝트의 핸들을 지정하는 것으로, 뮤텍스 오브젝트의 소유권을 획득할 수 있습니다.이 때, 지정된 뮤텍스 오브젝트가 다른 스렛드에 소유되고 있을 때는, 그 스렛드가 뮤텍스 오브젝트를 해방할 때까지 스렛드의 실행이 정지됩니다.

뮤텍스 오브젝트를 소유하는 스렛드는, 이미 그 오브젝트를 소유할 필요가 없어졌을 때에 ReleaseMutex 함수를 호출해 소유권을 해방하지 않으면 안됩니다.

뮤텍스 오브젝트를 소유하고 있는 스렛드는, 대기 함수에 같은 뮤텍스 오브젝트를 지정할 수 있습니다.이 때, 스렛드의 실행은 정지되지 않습니다.스렛드가 대기 함수를 호출할 때마다 내부의 뮤텍스의 재귀 카운터가 인크리먼트(increment) 됩니다.스렛드가 ReleaseMutex 함수를 호출할 때마다 재귀 카운터는 감소 되어 카운터가 0 (이)가 된 시점에서 뮤텍스의 소유권이 해방됩니다.

대응 정보

Windows 95 이후 / Windows NT 3.1 이후

반응형

'API 관련 > Win32 API 함수' 카테고리의 다른 글

ScreenToClient  (0) 2007.11.08
RemoveMenu  (0) 2007.11.08
ReleaseDC  (0) 2007.11.08
RegSetValueEx(A)  (0) 2007.11.08
RegQueryValueEx(A)  (0) 2007.11.08
Comments