Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

include/c++/CriticalSectionBlock.H File Reference

#include <critsec.h>

Include dependency graph for CriticalSectionBlock.H:

Include dependency graph

Go to the source code of this file.

Classes

class  CriticalSectionBlock
 A CriticalSectionBlock locks a critical section for the lifetime of the CriticalSectionBlock. More...


Defines

#define synchronized(cs)   for(CriticalSectionBlock __currentlocked(cs);__currentlocked.checkonce(); )
 cool macro which makes it possible to use the CriticalSectionBlock the way you are used to in Java (..if you are used to java).


Define Documentation

#define synchronized cs   )     for(CriticalSectionBlock __currentlocked(cs);__currentlocked.checkonce(); )
 

cool macro which makes it possible to use the CriticalSectionBlock the way you are used to in Java (..if you are used to java).

Basically you use it this way:

--------------------------------------------------------------------- critsec_t someCriticalSection; void foo () { // ... synchronized (&someCriticalSection) { //.. critical section protected with critical section. myCriticalDataStructure = 42; } // ... } ---------------------------------------------------------------------

The implementation of this macro creates a automatic variable within the initialization part of a for-loop which is valid for the lifetime of the block within the curly braces.

BUGS: wastes some CPU cyles for a counter which is neccessary to abuse the for(;;) loop to have this behaviour. Any ideas ?

Author:
Henner Zeller <H.Zeller@acm.org>

Definition at line 131 of file CriticalSectionBlock.H.


brickOS is released under the Mozilla Public License.
Original code copyright 1998-2002 by the authors.

Generated on Mon Feb 16 21:02:13 2004 for brickOS Kernel Developer by doxygen 1.3.5