13. [pywin32] OpenMutex 함수

pywin32/win32event|2020. 9. 17. 00:33

PyHANDLE = OpenMutex(desiredAccess, bInheritHandle , name )

 

인자로는 desiredAccess : int, bInheritHandle : bool, name : PyUnicode 가 있습니다.

 

desiredAccess는 뮤텍스에 대한 접근권한을 나타냅니다.

- win32event.SYNCHRONIZE: (NT만 가능) 동기화를 위해 사용합니다. 뮤텍스는 이 권한만 있으면 되는 것 같습니다.

 

bInheritHandle은 TRUE/FALSE 둘 중 하나를 가집니다.

 - win32con.TRUE: OpenEvent는 호출하는 프로그램의 핸들을 상속합니다.

 - win32con.FALSE: OpenEvent는 호출하는 프로그램의 핸들을 상속하지 않습니다.

 

name은 CreateMutex 함수 사용 시 사용했던 뮤텍스의 이름입니다.

 

Return 값은 오픈한 뮤텍스의 핸들값입니다.

 

 

import win32event
import win32con
import win32api

x = win32event.CreateMutex(None, win32con.FALSE, "mutexTest")
# win32event.ReleaseMutex(x)
# CreateMutex에 win32con.TRUE 라면 위의 함수로 점유를 해제해 줘야 합니다.

mHandle=win32event.OpenMutex(win32event.SYNCHRONIZE, win32con.FALSE, "mutexTest")

print("Main Thread\n")

win32api.CloseHandle(mHandle)
win32api.CloseHandle(x)

위의 예제는 OpenMutex의 사용을 보여주기 위해 적었으나, 사실 CreateMutex로 만들어서 그대로 사용해도 되고, OpenMutex는 다른 프로세스에서 호출하는 식으로 사용합니다.

 

 

반응형

댓글()