mirror of
https://github.com/cesanta/mongoose
synced 2026-08-25 22:26:06 -04:00
23 lines
1,013 B
C
23 lines
1,013 B
C
#pragma once
|
|
|
|
#include "arch.h"
|
|
|
|
struct mg_timer {
|
|
uint64_t period_ms; // Timer period in milliseconds
|
|
uint64_t expire; // Expiration timestamp in milliseconds
|
|
unsigned flags; // Possible flags values below
|
|
#define MG_TIMER_ONCE 0 // Call function once
|
|
#define MG_TIMER_REPEAT 1 // Call function periodically
|
|
#define MG_TIMER_RUN_NOW 2 // Call immediately when timer is set
|
|
#define MG_TIMER_CALLED 4 // Timer function was called at least once
|
|
#define MG_TIMER_AUTODELETE 8 // mg_free() timer when done
|
|
void (*fn)(void *); // Function to call
|
|
void *arg; // Function argument
|
|
struct mg_timer *next; // Linkage
|
|
};
|
|
|
|
void mg_timer_init(struct mg_timer **head, struct mg_timer *timer,
|
|
uint64_t milliseconds, unsigned flags, void (*fn)(void *),
|
|
void *arg);
|
|
void mg_timer_free(struct mg_timer **head, struct mg_timer *);
|
|
void mg_timer_poll(struct mg_timer **head, uint64_t new_ms);
|