Wefts::Mutex Class Reference

#include <wefts_mutex.h>

Inheritance diagram for Wefts::Mutex:

Inheritance graph
Collaboration diagram for Wefts::Mutex:

Collaboration graph
List of all members.

Detailed Description

Implements a very fast, non reentrant mutex.

This is the fastest and smallest possible mutex. To be used when implementing the condition/mutex raw scheme or when a very small section of not interruptable code is to be protected.

All mutex classes are implemented via inline calls to maximize execution speed; also, their methods are extremely small.

Public Member Functions

 Mutex ()
 Initializes the internal data of the mutex.

 ~Mutex ()
 Destroys the mutex.

virtual void lock ()
 Locks the mutex.

virtual bool trylock ()
 Try to lock the mutex.

virtual void unlock ()
 Unlocks the mutex.

Protected Attributes

OSMutex m_mutex

Constructor & Destructor Documentation

Wefts::Mutex::Mutex  )  [inline]

Initializes the internal data of the mutex.

Wefts::Mutex::~Mutex  )  [inline]

Destroys the mutex.

Only call this when the mutex is fully unlocked: destroying a locked mutex has undefined result.

Member Function Documentation

virtual void Wefts::Mutex::lock  )  [inline, virtual]

Locks the mutex.

If the calling thread is already owning the lock, the function will block producing an unavoidable and not interruptable deadlock.

Reimplemented in Wefts::RMutex.

virtual bool Wefts::Mutex::trylock  )  [inline, virtual]

Try to lock the mutex.

If any thread is currently holding the mutex, the function returns immediately false, while if it is not locked, the mutex is locked and the function returns true.

Reimplemented in Wefts::RMutex.

virtual void Wefts::Mutex::unlock  )  [inline, virtual]

Unlocks the mutex.

This method does not checks if the calling thread is the rightful owner of the mutex; unlocking a mutex from a thread that has not locked it has an undefined outcome.

Reimplemented in Wefts::RMutex.

Member Data Documentation

OSMutex Wefts::Mutex::m_mutex [protected]

The documentation for this class was generated from the following file:
Generated on Tue Oct 5 14:57:02 2004 for Wefts by doxygen 1.3.7