Files
EgtExecutor/EXE_Mutex.cpp
T
DarioS 37dc8b8a7b EgtExecutor 2.5a6 :
- aggiunte funzioni Lua EgtCreateMutex e EgtReleaseMutex.
2023-02-06 08:13:01 +01:00

58 lines
1.5 KiB
C++

//----------------------------------------------------------------------------
// EgalTech 2023-2023
//----------------------------------------------------------------------------
// File : EXE_Mutex.cpp Data : 05.02.23 Versione : 2.5a6
// Contenuto : Funzioni per gestione mutex.
//
//
//
// Modifiche : 05.02.23 DS Creazione modulo.
//
//
//----------------------------------------------------------------------------
//--------------------------- Include ----------------------------------------
#include "stdafx.h"
#include "EXE.h"
#include "/EgtDev/Include/EgtStringConverter.h"
using namespace std ;
//----------------------------------------------------------------------------
static HANDLE s_hMutex = NULL ;
//----------------------------------------------------------------------------
bool
ExeCreateMutex( const string& sMutexName)
{
if ( s_hMutex != NULL)
return false ;
HANDLE hMutex = CreateMutex( NULL, TRUE, stringtoW( sMutexName)) ;
if ( hMutex == NULL)
return false ;
else if ( GetLastError() == ERROR_ALREADY_EXISTS) {
ReleaseMutex( hMutex) ;
CloseHandle( hMutex) ;
return false ;
}
else {
s_hMutex = hMutex ;
return true ;
}
}
//----------------------------------------------------------------------------
bool
ExeReleaseMutex( void)
{
if ( s_hMutex == NULL)
return true ;
bool bOk = ( ReleaseMutex( s_hMutex) != FALSE) ;
CloseHandle( s_hMutex) ;
s_hMutex = NULL ;
return bOk ;
}