Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages | Examples

Recursive Mutex
[Nut/OS API]


Detailed Description

Thread synchronization support.

In addition to posting and waiting for events, Threads can use the provided recursive mutex funxtions to assert mutual access to shared data structures.

A recursive mutex is a mutex that can be locked several times by the thread that already owns the mutex.


Data Structures

struct  _mutex
 Recursive mutex. More...

struct  _MUTEX

Typedefs

typedef _MUTEX MUTEX
 Recursive mutex type.


Functions

void NutMutexInit (MUTEX *mutex)
 Create a mutex.

void NutMutexLock (MUTEX *mutex)
 Lock a mutex.

int NutMutexUnlock (MUTEX *mutex)
 Unlock a mutex.

int NutMutexTrylock (MUTEX *mutex)
 Attempt to lock a mutex without blocking.

int NutMutexDestroy (MUTEX *mutex)
 Free resources allocated for a mutex.


Function Documentation

int NutMutexDestroy MUTEX mutex  ) 
 

Free resources allocated for a mutex.

Return zero, if successful, otherwise the mutex is locked by another thread

void NutMutexInit MUTEX mutex  ) 
 

Create a mutex.

The type for the mutex is recursive

void NutMutexLock MUTEX mutex  ) 
 

Lock a mutex.

If the mutex is already locked by another thread, the thread will block until the mutex becomes available

: Should not be called from interrupt context

int NutMutexTrylock MUTEX mutex  ) 
 

Attempt to lock a mutex without blocking.

Return zero, if successful, otherwise the mutex is already locked by another thread : Should not be called from interrupt context

int NutMutexUnlock MUTEX mutex  ) 
 

Unlock a mutex.

Return zero, if successful, otherwise the current thread does not hold a lock on mutex. : Should not be called from interrupt context


© 2000-2003 by egnite Software GmbH - visit http://www.ethernut.de/