Mutual exclusion.
More...
|
typedef struct __tag_mutex | GF_Mutex |
| abstracted mutex object
|
|
The mutex object allows ensuring that portions of the code (typically access to variables) cannot be executed by two threads (or a thread and the main process) at the same time.
◆ gf_mx_new()
GF_Mutex* gf_mx_new |
( |
const char * |
name | ) |
|
Contructs a new mutex object
- Parameters
-
name | log name of the thread if any |
- Returns
- new mutex
◆ gf_mx_del()
Destroys a mutex object. This will wait for the mutex to be released if needed.
- Parameters
-
mx | the mutex object, may be NULL |
◆ gf_mx_p()
Locks the mutex object, making sure that another thread locking this mutex cannot execute until the mutex is unlocked.
- Parameters
-
mx | the mutex object, may be NULL |
- Returns
- 1 if success or mutex is NULL, 0 if error locking the mutex (which should never happen)
◆ gf_mx_v()
Unlocks the mutex object, allowing other threads waiting on this mutex to continue their execution
- Parameters
-
mx | the mutex object, may be NULL |
◆ gf_mx_try_lock()
Attemps to lock the mutex object without blocking until the object is released.
- Parameters
-
mx | the mutex object, may be NULL |
- Returns
- GF_TRUE if the mutex has been successfully locked or if the mutex is NULL, in which case it shall then be unlocked, or GF_FALSE if the mutex is locked by another thread.
◆ gf_mx_get_num_locks()
Returns the number of locks on the mutex if the caller thread is holding the mutex.
- Parameters
-
mx | the mutex object, may be NULL |
- Returns
- -1 if the mutex is not hold by the calling thread, or the number of locks (possibly 0) otherwise. Returns 0 if mutex is NULL