Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

CriticalSectionBlock.H File Reference

#include <critsec.h>

Include dependency graph for CriticalSectionBlock.H:

Go to the source code of this file.

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 (.


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-2005 by the authors.

Generated on Fri Apr 15 03:38:30 2005 for brickOS C++ by doxygen 1.4.2