Overview #
mutex
implements the mutual exclusion locks. Although libcsp provides the mutex
synchronization primitives, try to avoid using it cause it may hurt the performance.
Golang
: Do not communicate by sharing memory; instead, share memory by communicating.
Index #
- csp_mutex_t
- csp_mutex_init(mutex)
- csp_mutex_try_lock(mutex)
- csp_mutex_lock(mutex)
- csp_mutex_unlock(mutex)
csp_mutex_t #
csp_mutex_t
defines the type of mutual exclusion locks.
Example:
csp_mutex_t mutex;
csp_mutex_init(mutex) #
csp_mutex_init
initializes the mutex.
Example:
csp_mutex_init(&mutex);
csp_mutex_try_lock(mutex) #
csp_mutex_try_lock
tries to lock the mutex. It returns true
if success, otherwise false
.
Example:
if (csp_mutex_try_lock(&mutex)) {
// Do something...
csp_mutex_unlock(&mutex);
}
csp_mutex_lock(mutex) #
csp_mutex_lock
locks the mutex. It will spin if the mutex has been locked.
Example:
csp_mutex_lock(&mutex);
csp_mutex_unlock(mutex) #
csp_mutex_unlock
unlocks the mutex.
Example:
csp_mutex_unlock(&mutex);