Add timer ID attribute, for safe cleanup in the scripted environment

This commit is contained in:
Sergey Lyubka committed 2022-07-17 12:52:30 +01:00
1 parent 1fbf534f9a
commit 4a3d760c06
6 files changed
+12 -6

No files matched your search

+1
View File
@@ -224,6 +224,7 @@ struct mg_timer *mg_timer_add(struct mg_mgr *mgr, uint64_t milliseconds,
unsigned flags, void (*fn)(void *), void *arg) {
struct mg_timer *t = (struct mg_timer *) calloc(1, sizeof(*t));
mg_timer_init(&mgr->timers, t, milliseconds, flags, fn, arg);
t->id = mgr->timerid++;
return t;
}
+3 -2
View File
@@ -25,12 +25,13 @@ struct mg_mgr {
int dnstimeout; // DNS resolve timeout in milliseconds
bool use_dns6; // Use DNS6 server by default, see #1532
unsigned long nextid; // Next connection ID
unsigned long timerid; // Next timer ID
void *userdata; // Arbitrary user data pointer
uint16_t mqtt_id; // MQTT IDs for pub/sub
void *active_dns_requests; // DNS requests in progress
struct mg_timer *timers; // Active timers
void *priv; // Used by the experimental stack
size_t extraconnsize; // Used by the experimental stack
void *priv; // Used by the MIP stack
size_t extraconnsize; // Used by the MIP stack
#if MG_ARCH == MG_ARCH_FREERTOS_TCP
SocketSet_t ss; // NOTE(lsm): referenced from socket struct
#endif
+1 -1
View File
@@ -8,7 +8,7 @@
void mg_timer_init(struct mg_timer **head, struct mg_timer *t, uint64_t ms,
unsigned flags, void (*fn)(void *), void *arg) {
struct mg_timer tmp = {ms, 0U, 0U, flags, fn, arg, *head};
struct mg_timer tmp = {0U, ms, 0U, 0U, flags, fn, arg, *head};
*t = tmp;
*head = t;
}
+1
View File
@@ -3,6 +3,7 @@
#include "arch.h"
struct mg_timer {
unsigned long id; // Timer ID
uint64_t period_ms; // Timer period in milliseconds
uint64_t prev_ms; // Timestamp of a previous poll
uint64_t expire; // Expiration timestamp in milliseconds