aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext/source/fltimer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'externals/grill/flext/source/fltimer.cpp')
-rwxr-xr-xexternals/grill/flext/source/fltimer.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/externals/grill/flext/source/fltimer.cpp b/externals/grill/flext/source/fltimer.cpp
index c317df45..294da438 100755
--- a/externals/grill/flext/source/fltimer.cpp
+++ b/externals/grill/flext/source/fltimer.cpp
@@ -162,9 +162,11 @@ bool flext::Timer::At(double tm,void *data,bool dopast)
userdata = data;
period = 0;
#if FLEXT_SYS == FLEXT_SYS_PD
- const double ms = tm*1000.;
- if(dopast || clock_gettimesince(ms) <= 0)
- clock_set(clk,ms);
+ const double systm = clock_gettimesince(0);
+ double df = tm*1000.-systm;
+ if(dopast && df < 0) df = 0;
+ if(df >= 0)
+ clock_delay(clk,df);
#elif FLEXT_SYS == FLEXT_SYS_MAX
const double ms = tm*1000.;
double cur;