diff --git a/kal/posix/src/time.c b/kal/posix/src/time.c index 838be5a1..adf3ca76 100644 --- a/kal/posix/src/time.c +++ b/kal/posix/src/time.c @@ -188,7 +188,8 @@ int timer_settime(timer_t timerID, int flags, intSave = LOS_IntLock(); swtmr = OS_SWT_FROM_SID(swtmrID); swtmr->ucMode = (interval ? LOS_SWTMR_MODE_PERIOD : LOS_SWTMR_MODE_NO_SELFDELETE); - swtmr->uwInterval = interval; + swtmr->uwInterval = (interval ? interval : expiry); + LOS_IntRestore(intSave); if ((value->it_value.tv_sec == 0) && (value->it_value.tv_nsec == 0)) {