MCPcopy Create free account
hub / github.com/0x1abin/MultiTimer / multiTimerStart

Function multiTimerStart

MultiTimer.c:26–45  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24}
25
26int multiTimerStart(MultiTimer* timer, uint64_t timing, MultiTimerCallback_t callback, void* userData) {
27 if (!timer || !callback || platformTicksFunction == NULL) {
28 return -1; // Return error if any parameter is invalid
29 }
30
31 removeTimer(timer); // Centralize removal logic
32
33 timer->deadline = platformTicksFunction() + timing;
34 timer->callback = callback;
35 timer->userData = userData;
36
37 MultiTimer** current = &timerList;
38 while (*current && ((*current)->deadline < timer->deadline)) {
39 current = &(*current)->next;
40 }
41 timer->next = *current;
42 *current = timer;
43
44 return 0;
45}
46
47int multiTimerStop(MultiTimer* timer) {
48 removeTimer(timer); // Use centralized removal function

Callers 3

timerCallback1Function · 0.85
timerCallback2Function · 0.85
mainFunction · 0.85

Calls 1

removeTimerFunction · 0.85

Tested by 3

timerCallback1Function · 0.68
timerCallback2Function · 0.68
mainFunction · 0.68