22#include "timer_thread.h"
24#include <core/threading/mutex.h>
25#include <core/threading/mutex_locker.h>
26#include <core/threading/wait_condition.h>
54 while (!queued_wait_until_.
is_zero()) {
61 woken = waitcond_->
abstimed_wait(wait_until.get_sec(), wait_until.get_nsec());
62 }
while (woken && !aborted_);
82 queued_wait_until_ = wait_until;
87 queued_wait_until_ = wait_until;
Callback listener pure virtual class.
virtual void timer_event()=0
Called for timer events.
void start_timer(CallbackListener *listener, const fawkes::Time &wait_until)
Start timer non-blocking.
void abort_timer()
Abort a currently running timer.
virtual void loop()
Code to execute in the thread.
PlexilTimerThread()
Constructor.
virtual ~PlexilTimerThread()
Empty destructor.
void unlock()
Unlock the mutex.
Mutex mutual exclusion lock.
void lock()
Lock this mutex.
void unlock()
Unlock the mutex.
Thread class encapsulation of pthreads.
bool waiting() const
Check if thread is currently waiting for wakeup.
void wakeup()
Wake up thread.
A class for handling time.
bool is_zero() const
Check if time is zero.
void set_time(const timeval *tv)
Sets the time.
Wait until a given condition holds.
void wake_all()
Wake up all waiting threads.
bool abstimed_wait(long int sec, long int nanosec)
Wait with absolute timeout.
Fawkes library namespace.