historical/toontown-classic.git/panda/include/mutexWin32Impl.I
2024-01-16 11:20:27 -06:00

80 lines
1.2 KiB
Text

/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file mutexWin32Impl.I
* @author drose
* @date 2006-02-07
*/
/**
*
*/
INLINE MutexWin32Impl::
~MutexWin32Impl() {
// If the lock has been contended, and we use the Windows XP implementation,
// we have a handle to close. Otherwise, this field will be null.
if (_lock[1] != nullptr) {
CloseHandle(_lock[1]);
}
}
/**
*
*/
INLINE void MutexWin32Impl::
lock() {
_funcs._lock(_lock);
}
/**
*
*/
INLINE bool MutexWin32Impl::
try_lock() {
return (_funcs._try_lock(_lock) != 0);
}
/**
*
*/
INLINE void MutexWin32Impl::
unlock() {
_funcs._unlock(_lock);
}
/**
*
*/
INLINE ReMutexWin32Impl::
~ReMutexWin32Impl() {
DeleteCriticalSection(&_lock);
}
/**
*
*/
INLINE void ReMutexWin32Impl::
lock() {
EnterCriticalSection(&_lock);
}
/**
*
*/
INLINE bool ReMutexWin32Impl::
try_lock() {
return (TryEnterCriticalSection(&_lock) != 0);
}
/**
*
*/
INLINE void ReMutexWin32Impl::
unlock() {
LeaveCriticalSection(&_lock);
}