![]()  | 
  
    Qore Programming Language
    0.9.3.2
    
   | 
 
a simple thread-safe counter object; objects can block on it until the counter reaches zero More...
#include <QoreCounter.h>
Inherited by Counter.
Public Member Methods | |
| DLLEXPORT | QoreCounter (int nc=0) | 
| creates the counter and initializes the count  | |
| DLLEXPORT | ~QoreCounter () | 
| destroys the object and frees all memory  | |
| DLLEXPORT int | dec (ExceptionSink *xsink) | 
| decrements the counter and wakes up any threads if the counter reaches 0  More... | |
| DLLEXPORT void | destructor (ExceptionSink *xsink) | 
| throws a Qore-language exception if there are any waiting threads and wakes them all up  | |
| DLLEXPORT int | getCount () const | 
| returns the current count  | |
| DLLEXPORT int | getWaiting () const | 
| returns the number of threads blocked on this object  | |
| DLLEXPORT int | inc () | 
| increments the counter  More... | |
| DLLEXPORT int | waitForZero (ExceptionSink *xsink, int timeout_ms=0) | 
| blocks the calling thread until the counter reaches 0  More... | |
a simple thread-safe counter object; objects can block on it until the counter reaches zero
| DLLEXPORT int QoreCounter::dec | ( | ExceptionSink * | xsink | ) | 
decrements the counter and wakes up any threads if the counter reaches 0
a Qore-language exception will be raised here if QoreCounter::destructor() has already been run before calling this function.
| xsink | any Qore-language exception thrown will be added here | 
| DLLEXPORT int QoreCounter::inc | ( | ) | 
increments the counter
| DLLEXPORT int QoreCounter::waitForZero | ( | ExceptionSink * | xsink, | 
| int | timeout_ms = 0  | 
        ||
| ) | 
blocks the calling thread until the counter reaches 0
a Qore-language exception will be raised here if QoreCounter::destructor() is run while threads are still blocked
| xsink | any Qore-language exception thrown will be added here | 
| timeout_ms | indicates a timeout in milliseconds to wait, 0 means no timeout |