[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]


cma_mutex_lock

Locks a mutex if the mutex is unlocked. If the mutex is locked, causes the thread to wait for the mutex to become available.

Syntax

cma_mutex_lock(
                mutex);
 


Argument Data Type Access

mutex opaque cma_t_mutex read


C Binding

#include 

void cma_mutex_lock ( cma_t_mutex *mutex);

Arguments

mutex
Handle of the mutex locked.

Description

This routine locks a mutex and its behavior varies based on the kind of mutex.

If you specified a recursive mutex, the current owner of a mutex can relock the same mutex without blocking. If you specified a nonrecursive mutex and the current owner tries to lock the mutex a second time, the exception cma_e_in_use is reported. If the mutex is locked when a thread calls this routine, the thread waits for the mutex to become available. If you specified a fast mutex, a deadlock can result if the current owner of a mutex calls this routine in an attempt to lock the mutex a second time.

The thread that has locked a mutex becomes its current owner and remains the owner until the same thread (and only that thread) has unlocked it. This routine returns with the mutex in the locked state and with the current thread as the mutex's current owner.

See cma_attr_set_mutex_kind for information about fast, recursive, and nonrecursive mutexes.

Exceptions

cma_e_existence
cma_e_in_use
cma_e_use_error



[Return to Bookshelf] [Contents] [Previous Section] [Next Section] [Index] [Help]