MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / modTimerRemove

Function modTimerRemove

modules/base/timer/pebble/timer.c:241–274  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

239}
240
241void modTimerRemove(modTimer timer)
242{
243 modCriticalSectionDeclare;
244 ModdablePebbleAppState state = (ModdablePebbleAppState)app_state_get_js_memory_api_context();
245 modTimer walker, prev = NULL;
246
247 modCriticalSectionBegin();
248
249 for (walker = state->timers; NULL != walker; prev = walker, walker = walker->next) {
250 if (timer == walker) {
251 timer->flags = kTimerFlagUnscheduled;
252
253 timer->useCount--;
254 if (timer->useCount <= 0) {
255 if (NULL == prev)
256 state->timers = walker->next;
257 else
258 prev->next = walker->next;
259 c_free(timer);
260 modInstrumentationAdjust(Timers, -1);
261 }
262 break;
263 }
264 }
265
266 modCriticalSectionEnd();
267
268 if (state->timers)
269 modTimersScheduleNext();
270 else {
271 evented_timer_cancel(state->eventedTimer);
272 state->eventedTimer = EVENTED_TIMER_INVALID_ID;
273 }
274}
275
276void modTimerDelayMS(uint32_t ms)
277{

Callers 1

modTimersExecuteFunction · 0.70

Calls 1

modTimersScheduleNextFunction · 0.85

Tested by

no test coverage detected