Lines Matching refs:timer
52 static void InsertTimerNode(EventLoop *loop, TimerNode *timer)
54 timer->endTime = GetCurrentTimespec(timer->timeout);
55 LoopMutexLock(&timer->mutex);
56 timer->flags &= ~TIMER_PROCESSING;
57 timer->repeat--;
58 OH_ListAddWithOrder(&loop->timerList, &timer->node, TimerNodeCompareProc);
60 LoopMutexUnlock(&timer->mutex);
70 TimerNode *timer = ListEntry(node, TimerNode, node);
71 if (timer->endTime > (currTime + faultTime)) {
75 LoopMutexLock(&timer->mutex);
76 OH_ListRemove(&timer->node);
77 OH_ListInit(&timer->node);
78 LoopMutexUnlock(&timer->mutex);
80 OH_ListAddTail(&timeoutList, &timer->node);
81 timer->flags |= TIMER_PROCESSING;
88 TimerNode *timer = ListEntry(node, TimerNode, node);
90 OH_ListRemove(&timer->node);
91 OH_ListInit(&timer->node);
92 timer->process((TimerHandle)timer, timer->context);
93 if ((timer->repeat == 0) || ((timer->flags & TIMER_CANCELED) == TIMER_CANCELED)) {
94 free(timer);
99 InsertTimerNode(loop, timer);
106 TimerNode *timer = (TimerNode *)malloc(sizeof(TimerNode));
107 LE_CHECK(timer != NULL, return NULL, "Failed to create timer");
108 OH_ListInit(&timer->node);
109 LoopMutexInit(&timer->mutex);
110 timer->timeout = 0;
111 timer->repeat = 1;
112 timer->flags = TASK_TIME;
114 return timer;
118 TimerHandle *timer, LE_ProcessTimer processTimer, void *context)
121 LE_CHECK(timer != NULL, return LE_INVALID_PARAM, "Invalid parameters");
125 LE_CHECK(timerNode != NULL, return LE_FAILURE, "Failed to create timer");
128 *timer = (TimerHandle)timerNode;
134 const TimerHandle timer, uint64_t timeout, uint64_t repeat)
136 LE_CHECK(loopHandle != NULL && timer != NULL, return LE_INVALID_PARAM, "Invalid parameters");
139 TimerNode *timerNode = (TimerNode *)timer;
159 TimerNode *timer = ListEntry(node, TimerNode, node);
160 OH_ListRemove(&timer->node);
161 OH_ListInit(&timer->node);
162 LoopMutexDestroy(timer->mutex);
163 free(timer);
173 TimerNode *timer = (TimerNode *)timerHandle;
174 LE_CHECK(timer != NULL, return, "Invalid timer");
176 if ((timer->flags & TIMER_PROCESSING) == TIMER_PROCESSING) {
177 timer->flags |= TIMER_CANCELED;
180 LoopMutexLock(&timer->mutex);
181 OH_ListRemove(&timer->node);
182 OH_ListInit(&timer->node);
183 LoopMutexUnlock(&timer->mutex);
184 free(timer);
187 void LE_StopTimer(const LoopHandle loopHandle, const TimerHandle timer)
189 CancelTimer(timer);