globus_mutex - Online Linux Manual PageSection : 3
Updated : Tue Jan 26 2021
Source : Version 18.9
Note : globus_common

NAMEglobus_mutex − Mutual Exclusion
 − Mutual Exclusion​.

SYNOPSIS

Data Structuresunion globus_mutex_t
Mutex​.
union globus_mutexattr_t
Mutex attribute​.
struct globus_rmutex_t
Recursive Mutex​.

Typedefstypedef int globus_rmutexattr_t
Recursive mutex attribute​.

Functionsint globus_mutex_init (globus_mutex_t *mutex, globus_mutexattr_t *attr)
Initialize a mutex​.
int globus_mutex_destroy (globus_mutex_t *mutex)
Destroy a mutex​.
int globus_mutex_lock (globus_mutex_t *mutex)
Lock a mutex​.
int globus_mutex_unlock (globus_mutex_t *mutex)
Unlock a mutex​.
int globus_mutex_trylock (globus_mutex_t *mutex)
Lock a mutex if it is not locked​.
int globus_mutexattr_init (globus_mutexattr_t *attr)
Initialize a mutex attribute​.
int globus_mutexattr_destroy (globus_mutexattr_t *attr)
Destroy a mutex attribute​.

Recursive Mutexint globus_rmutex_init (globus_rmutex_t *rmutex, globus_rmutexattr_t *rattr)
Initialize a recursive mutex​.
int globus_rmutex_lock (globus_rmutex_t *rmutex)
Lock a recursive mutex​.
int globus_rmutex_unlock (globus_rmutex_t *rmutex)
Unlock a recursive mutex​.
int globus_rmutex_destroy (globus_rmutex_t *rmutex)
Destroy a recursive mutex​.

Detailed DescriptionMutual Exclusion​. The Globus runtime includes three portable, related mutual exclusion primitives that can be used in applications and libraries​. These are • globus_mutex_t: a non-recursive, non-shared lock • globus_rmutex_t: a recursive non-shared lock • globus_rw_mutex_t: a reader-writer lock

Function Documentation

int globus_mutex_destroy (globus_mutex_t * mutex)Destroy a mutex​. The globus_mutex_destroy() function destroys the mutex pointed to by its mutex parameter​. After a mutex is destroyed it may no longer be used unless it is again initialized by globus_mutex_init()​. Behavior is undefined if globus_mutex_destroy() is called with a pointer to a locked mutex​. Parameters mutex The mutex to destroy Returns On success, globus_mutex_destroy() returns GLOBUS_SUCCESS​. Otherwise, a non-zero implementation-specific error value is returned​.

int globus_mutex_init (globus_mutex_t * mutex, globus_mutexattr_t * attr)Initialize a mutex​. The globus_mutex_init() function creates a mutex variable that can be used for synchronization​. Currently, the attr parameter is ignored​. Parameters mutex Pointer to the mutex to initialize​.
attr Ignored​.
Returns On success, globus_mutex_init() initializes the mutex and returns GLOBUS_SUCCESS​. Otherwise, a non-0 value is returned​.

int globus_mutex_lock (globus_mutex_t * mutex)Lock a mutex​. The globus_mutex_lock() function locks the mutex pointed to by its mutex parameter​. Upon successful return, the thread calling globus_mutex_lock() has an exclusive lock on the resources protected by mutex​. Other threads calling globus_mutex_lock() will wait until that thread later calls globus_mutex_unlock() or globus_cond_wait() with that mutex​. Depending on the thread model, calling globus_mutex_lock on a mutex locked by the current thread will either return an error or result in deadlock​. Parameters mutex The mutex to lock​. Returns On success, globus_mutex_lock() returns GLOBUS_SUCCESS​. Otherwise, a non-zero implementation-specific error value is returned​.

int globus_mutex_trylock (globus_mutex_t * mutex)Lock a mutex if it is not locked​. The globus_mutex_trylock() function locks the mutex pointed to by its mutex parameter if no thread has already locked the mutex​. If mutex is locked, then globus_mutex_trylock() returns EBUSY and does not block the current thread or lock the mutex​. Upon successful return, the thread calling globus_mutex_trylock() has an exclusive lock on the resources protected by mutex​. Other threads calling globus_mutex_lock() will wait until that thread later calls globus_mutex_unlock() or globus_cond_wait() with that mutex​. Parameters mutex The mutex to lock​. Returns On success, globus_mutex_trylock() returns GLOBUS_SUCCESS and locks the mutex​. If another thread holds the lock, globus_mutex_trylock() returns EBUSY​. Otherwise, a non-zero implementation-specific error value is returned​.

int globus_mutex_unlock (globus_mutex_t * mutex)Unlock a mutex​. The globus_mutex_unlock() function unlocks the mutex pointed to by its mutex parameter​. Upon successful return, the thread calling globus_mutex_unlock() no longer has an exclusive lock on the resources protected by mutex​. Another thread calling globus_mutex_lock() may be unblocked so that it may acquire the mutex​. Behavior is undefined if globus_mutex_unlock is called with an unlocked mutex​. Parameters mutex The mutex to unlock​. Returns On success, globus_mutex_unlock() returns GLOBUS_SUCCESS​. Otherwise, a non-zero implementation-specific error value is returned​.

int globus_mutexattr_destroy (globus_mutexattr_t * attr)Destroy a mutex attribute​. The globus_mutexattr_destroy() function destroys the mutex attribute structure pointed to by its attr parameter​. Parameters attr Attribute structure to destroy​. Returns Upon success, globus_mutexattr_destroy() returns GLOBUS_SUCCESS and modifies the attribute pointed to by attr​. If an error occurs, globus_mutexattr_destroy() returns an implementation-specific non-zero error code​.

int globus_mutexattr_init (globus_mutexattr_t * attr)Initialize a mutex attribute​. The globus_mutexattr_init() function initializes the mutex attribute structure pointed to by its attr parameter​. Currently there are no attribute values that can be set via this API, so there's no real use to calling this function​. Parameters attr Attribute structure to initialize​. Returns Upon success, globus_mutexattr_init() returns GLOBUS_SUCCESS and modifies the attribute pointed to by attr​. If an error occurs, globus_mutexattr_init() returns an implementation-specific non-zero error code​.

int globus_rmutex_destroy (globus_rmutex_t * rmutex)Destroy a recursive mutex​. The globus_rmutex_destroy() function destroys a recursive mutex If the mutex is currently locked, behavior is undefined​. Parameters rmutex Mutex to unlock Returns GLOBUS_SUCCESS

int globus_rmutex_init (globus_rmutex_t * rmutex, globus_rmutexattr_t * rattr)Initialize a recursive mutex​. The globus_rmutex_init() function initializes a recursive mutex, that is, one which may be locked multiple times by a single thread without causing deadlock​. Parameters rmutex A pointer to the mutex to initialize
rattr IGNORED
Returns On success, globus_rmutex_init() initializes the mutex and returns GLOBUS_SUCCESS; otherwise, it returns a non-zero error code​.

int globus_rmutex_lock (globus_rmutex_t * rmutex)Lock a recursive mutex​. The globus_rmutex_lock() function acquires the lock controlled by rmutex​. This may be called multiple times in a single thread without causing deadlock, provided that a call to globus_rmutex_unlock() is called the same number of times as globus_rmutex_lock()​. Once acquired, all other threads calling this function will be blocked until the mutex is completely unlocked​. Parameters rmutex A pointer to the mutex to lock Returns On success, globus_rmutex_init() increases the lock level for the mutex, blocks other threads trying to acquire the same mutex, and returns GLOBUS_SUCCESS; otherwise, it returns a non-zero error code​.

int globus_rmutex_unlock (globus_rmutex_t * rmutex)Unlock a recursive mutex​. The globus_rmutex_unlock() function decrements the lock count for the lock pointed to by rmutex​. If the lock count is reduced to zero, it also unblocks a thread which is trying to acquire the lock if there is one​. Parameters rmutex Mutex to unlock Returns GLOBUS_SUCCESS

AuthorGenerated automatically by Doxygen for globus_common from the source code​.
0
Johanes Gumabo
Data Size   :   39,887 byte
man-globus_mutex_trylock.3Build   :   2024-12-05, 20:55   :  
Visitor Screen   :   x
Visitor Counter ( page / site )   :   2 / 183,819
Visitor ID   :     :  
Visitor IP   :   18.191.67.90   :  
Visitor Provider   :   AMAZON-02   :  
Provider Position ( lat x lon )   :   39.962500 x -83.006100   :   x
Provider Accuracy Radius ( km )   :   1000   :  
Provider City   :   Columbus   :  
Provider Province   :   Ohio ,   :   ,
Provider Country   :   United States   :  
Provider Continent   :   North America   :  
Visitor Recorder   :   Version   :  
Visitor Recorder   :   Library   :  
Online Linux Manual Page   :   Version   :   Online Linux Manual Page - Fedora.40 - march=x86-64 - mtune=generic - 24.12.05
Online Linux Manual Page   :   Library   :   lib_c - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Online Linux Manual Page   :   Library   :   lib_m - 24.10.03 - march=x86-64 - mtune=generic - Fedora.40
Data Base   :   Version   :   Online Linux Manual Page Database - 24.04.13 - march=x86-64 - mtune=generic - fedora-38
Data Base   :   Library   :   lib_c - 23.02.07 - march=x86-64 - mtune=generic - fedora.36

Very long time ago, I have the best tutor, Wenzel Svojanovsky . If someone knows the email address of Wenzel Svojanovsky , please send an email to johanes_gumabo@yahoo.co.id .
If error, please print screen and send to johanes_gumabo@yahoo.co.id
Under development. Support me via PayPal.