#include <nitro/os.h>
void OS_LockMutexFromRToW( OSMutex* mutex );
void OS_LockMutexFromWToR( OSMutex* mutex );
mutex |
Pointer to the OSMutex structure |
None.
Changes the type of the mutex
that is locked.
mutex
is the pointer to the OSMutex
structure to be changed.
The OS_LockMutexFromWToR
function takes a mutex
that is set to write lock
and changes the setting to read lock
. The mutex
type is then read lock
. To unlock it you need to execute either the OS_UnlockMutexR
or OS_UnlockMutexRW
function.
The OS_LockMutexFromRToW
takes a mutex
that is set to read lock
and changes the setting to write lock
. The mutex
type is then write lock
. To unlock it you need to execute either the OS_UnlockMutexW
or OS_UnlockMutexRW
function.
Control will not return from either of these functions until the change has succeeded. Internally, the OS_TryLockMutexFromWToR
and OS_TryLockMutexFromRToW
functions will be called repeatedly until the process succeeds. The process will stop, however, if the function has been specified in a way that cannot succeed. For example, if the OS_LockMutexFromToWToR
function is called to change the mutex from write lock
to read lock
but the mutex is already set to read lock
. (The thread goes to sleep.)
OS_InitMutex
OS_LockMutex
OS_UnlockMutex
OS_LockMutexR
OS_LockMutexW
OS_UnlocMutexR
OS_UnlocMutexW
OS_TryLockMutexR
OS_TryLockMutexW
OS_TryLockMutexFromRToW
OS_TryLockMutexFromWToR
2008/12/17 Initial version.
CONFIDENTIAL