32 #ifndef _QORE_QORECOUNTER_H    34 #define _QORE_QORECOUNTER_H    37 #include <qore/QoreCondition.h>    43    hashdecl qore_counter_private* priv;
    49    DLLLOCAL QoreCounter& operator=(
const QoreCounter&);
    53    DLLEXPORT QoreCounter(
int nc = 0);
    96    DLLLOCAL 
void waitForZero();
 a simple thread-safe counter object; objects can block on it until the counter reaches zero ...
Definition: QoreCounter.h:40
 
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 
 
DLLEXPORT int getCount() const
returns the current count 
 
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:46
 
DLLEXPORT int inc()
increments the counter 
 
DLLEXPORT void destructor(ExceptionSink *xsink)
throws a Qore-language exception if there are any waiting threads and wakes them all up ...
 
DLLEXPORT int waitForZero(ExceptionSink *xsink, int timeout_ms=0)
blocks the calling thread until the counter reaches 0 
 
DLLEXPORT int getWaiting() const
returns the number of threads blocked on this object