54 create( name, size, mustExist, mustNotExist );
68 assert( !( mustExist && mustNotExist ) );
69 if ( mustExist && mustNotExist )
74 else if ( mustNotExist )
76 m_mapFile = CreateFileMappingA( INVALID_HANDLE_VALUE, NULL,
77 PAGE_READWRITE, 0, size, name );
78 if ( GetLastError() == ERROR_ALREADY_EXISTS )
82 m_mapFile = CreateFileMappingA( INVALID_HANDLE_VALUE, NULL,
83 PAGE_READWRITE, 0, size, name );
90 else if ( mustNotExist )
92 m_mapFile = shm_open( name, O_RDWR | O_CREAT | O_EXCL, S_IRWXU );
98 m_mapFile = shm_open( name, O_RDWR | O_CREAT, S_IRWXU );
105 m_name =
new char[strlen( name ) + 1];
158 create( name, aquireOnCreate );
169 strncpy( mutexName + 1, name, 250 );
170 mutexName[250] =
'\0';
171 m_mutex = sem_open( mutexName, O_CREAT, S_IRWXU, 1 );
178 DWORD result = WaitForSingleObject(
m_mutex, INFINITE );
179 m_haveLock = ( result == WAIT_OBJECT_0 || result == WAIT_ABANDONED );
191 DWORD result = WaitForSingleObject(
m_mutex, millisecs );
192 m_haveLock = ( result == WAIT_OBJECT_0 || result == WAIT_ABANDONED );