static isc_condition_t cv;
static isc_mutex_t mx;
static isc_time_t endtime;
+static isc_mutex_t lasttime_mx = PTHREAD_MUTEX_INITIALIZER;
static isc_time_t lasttime;
static int seconds;
static int nanoseconds;
result = isc_task_onshutdown(task, shutdown, NULL);
assert_int_equal(result, ISC_R_SUCCESS);
+ isc_mutex_lock(&lasttime_mx);
result = isc_time_now(&lasttime);
+ isc_mutex_unlock(&lasttime_mx);
assert_int_equal(result, ISC_R_SUCCESS);
result = isc_timer_create(timermgr, timertype, expires, interval,
assert_int_equal(result, ISC_R_SUCCESS);
isc_interval_set(&interval, seconds, nanoseconds);
+ isc_mutex_lock(&lasttime_mx);
result = isc_time_add(&lasttime, &interval, &base);
+ isc_mutex_unlock(&lasttime_mx);
assert_int_equal(result, ISC_R_SUCCESS);
isc_interval_set(&interval, FUDGE_SECONDS, FUDGE_NANOSECONDS);
assert_true(isc_time_compare(&llim, &now) <= 0);
assert_true(isc_time_compare(&ulim, &now) >= 0);
- lasttime = now;
+ isc_interval_set(&interval, 0, 0);
+ isc_mutex_lock(&lasttime_mx);
+ isc_time_add(&now, &interval, &lasttime);
+ isc_mutex_unlock(&lasttime_mx);
if (atomic_load(&eventcnt) == nevents) {
result = isc_time_now(&endtime);
assert_int_equal(result, ISC_R_SUCCESS);
isc_interval_set(&interval, seconds, nanoseconds);
+ isc_mutex_lock(&lasttime_mx);
result = isc_time_add(&lasttime, &interval, &base);
+ isc_mutex_unlock(&lasttime_mx);
assert_int_equal(result, ISC_R_SUCCESS);
isc_interval_set(&interval, FUDGE_SECONDS, FUDGE_NANOSECONDS);
assert_true(isc_time_compare(&llim, &now) <= 0);
assert_true(isc_time_compare(&ulim, &now) >= 0);
- lasttime = now;
+ isc_interval_set(&interval, 0, 0);
+ isc_mutex_lock(&lasttime_mx);
+ isc_time_add(&now, &interval, &lasttime);
+ isc_mutex_unlock(&lasttime_mx);
assert_int_equal(event->ev_type, ISC_TIMEREVENT_IDLE);
assert_int_equal(result, ISC_R_SUCCESS);
isc_interval_set(&interval, seconds, nanoseconds);
+ isc_mutex_lock(&lasttime_mx);
result = isc_time_add(&lasttime, &interval, &base);
+ isc_mutex_unlock(&lasttime_mx);
assert_int_equal(result, ISC_R_SUCCESS);
isc_interval_set(&interval, FUDGE_SECONDS, FUDGE_NANOSECONDS);
assert_true(isc_time_compare(&llim, &now) <= 0);
assert_true(isc_time_compare(&ulim, &now) >= 0);
- lasttime = now;
+ isc_interval_set(&interval, 0, 0);
+ isc_mutex_lock(&lasttime_mx);
+ isc_time_add(&now, &interval, &lasttime);
+ isc_mutex_unlock(&lasttime_mx);
int _eventcnt = atomic_load(&eventcnt);