blocxx
Functions

BLOCXX_NAMESPACE::MutexImpl Namespace Reference

The MutexImpl namespace represents the functionality needed by the BloCxx Mutex class (Mutex). More...

Functions

BLOCXX_COMMON_API int createMutex (Mutex_t &handle)
 Create a platform specific mutext handle.
BLOCXX_COMMON_API int destroyMutex (Mutex_t &handle)
 Destroy a mutex previously created with createMutex.
BLOCXX_COMMON_API int acquireMutex (Mutex_t &handle)
 Acquire the mutex specified by a given mutex handle.
BLOCXX_COMMON_API int releaseMutex (Mutex_t &handle)
 Release a mutex that was previously acquired with the acquireMutex method.

Detailed Description

The MutexImpl namespace represents the functionality needed by the BloCxx Mutex class (Mutex).

The implementation for these functions must be provided on all platforms that BloCxx is avaliable for. It is essentially an abstraction layer over another mutex implementation.


Function Documentation

BLOCXX_COMMON_API int BLOCXX_NAMESPACE::MutexImpl::acquireMutex ( Mutex_t &  handle)

Acquire the mutex specified by a given mutex handle.

This method should block until the desired mutex can be acquired. The error return value is used to indicate critical errors.

Parameters:
handleThe mutex to acquire.
Returns:
0 on success. -1 indicates a critical error.

Referenced by BLOCXX_NAMESPACE::NonRecursiveMutex::acquire(), and BLOCXX_NAMESPACE::Mutex::acquire().

BLOCXX_COMMON_API int BLOCXX_NAMESPACE::MutexImpl::createMutex ( Mutex_t &  handle)

Create a platform specific mutext handle.

Parameters:
handleThe mutex handle that should be initialized by this method
isRecursiveSpecified whether to create a recursive mutex
Returns:
0 on success. Otherwise -1.

Referenced by BLOCXX_NAMESPACE::Mutex::Mutex().

BLOCXX_COMMON_API int BLOCXX_NAMESPACE::MutexImpl::destroyMutex ( Mutex_t &  handle)

Destroy a mutex previously created with createMutex.

Parameters:
handleThe handle to the mutex that will be destroyed.
Returns:
The following error codes: 0: success -1: Could not be acquired for destruction because it is currently locked. -2: All other error conditions

Referenced by BLOCXX_NAMESPACE::Mutex::~Mutex(), and BLOCXX_NAMESPACE::NonRecursiveMutex::~NonRecursiveMutex().

BLOCXX_COMMON_API int BLOCXX_NAMESPACE::MutexImpl::releaseMutex ( Mutex_t &  handle)

Release a mutex that was previously acquired with the acquireMutex method.

Parameters:
handleThe handle to the mutex that is being released.
Returns:
0 on success. -1 indicates a critical error.

Referenced by BLOCXX_NAMESPACE::NonRecursiveMutex::release(), BLOCXX_NAMESPACE::Mutex::release(), and BLOCXX_NAMESPACE::NonRecursiveMutex::~NonRecursiveMutex().