]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/timer.h
Fix Timer to use is Semaphore correctly
[libs/core.git] / source / time / timer.h
index 403e484cba7376412ca0a068c58f908e258d1ff1..90d870ca9a3afbd44b155f5ccfb5b85747c02442 100644 (file)
@@ -3,8 +3,8 @@
 
 #include <vector>
 #include <sigc++/sigc++.h>
-#include "../core/mutex.h"
-#include "../core/semaphore.h"
+#include <msp/core/mutex.h>
+#include <msp/core/semaphore.h>
 #include "timedelta.h"
 #include "timestamp.h"
 
@@ -49,34 +49,28 @@ private:
        std::vector<SlotProxy> slots;
        Semaphore sem;
        Mutex mutex;
+       bool blocking;
 
 public:
+       Timer();
        ~Timer();
 
-       /**
-       Adds a timer that will be executed periodically as long as the timeout
-       signal hander returns true.
-       */
+       /** Adds a timer that will be executed periodically as long as the timeout
+       signal hander returns true. */
        Slot &add(const TimeDelta &);
 
-       /**
-       Adds a timer that will be executed once at a specific time.  The return
-       value of the timeout signal handler is ignored.
-       */
+       /** Adds a timer that will be executed once at a specific time.  The return
+       value of the timeout signal handler is ignored. */
        Slot &add(const TimeStamp &);
 
-       /**
-       Cancels a previously added timer.
-       */
+       /** Cancels a previously added timer. */
        void cancel(Slot &);
 
-       /**
-       Checks all timers, executing any that have timed out.  If block is true,
+       /** Checks all timers, executing any that have timed out.  If block is true,
        waits until one times out.
 
        Note: If there are no active timers when a blocking tick is executed, it
-       won't return until a timer is added from another thread.
-       */
+       won't return until a timer is added from another thread. */
        void tick(bool block = true);
 
        TimeStamp get_next_timeout() const;