모두의 프린터는 어떠한 경우에도 회원가입, 카드결제를 요구하지 않습니다.

윈도 API를 이용한 중복실행방지 ( feat. mutex )

윈도용 프로그램을 Go로 개발하다보면 중복실행을 원치 않을 경우가 있습니다. 이런때 윈도 API 의 뮤텍스 관련 함수를 이용하면 같은 프로그램의 중복실행을 방지할 수 있습니다.

Bash
go get github.com/rodolfoag/gow32

위 패키지 설치가 필요합니다.

Go
/**
*	checkMutex
**/
func checkMutex(mname string) bool {
	_, err := gow32.CreateMutex(mname)

	if err != nil {
		if int(err.(syscall.Errno)) == gow32.ERROR_ALREADY_EXISTS {
			return false
		}
	}

	return true
}

리턴 값이 false 이면 이미 같은 실행파일이 실행중인겁니다.

%d