mg_set_timer.md 808 Bytes
Newer Older
1 2 3 4 5 6 7 8
---
title: "mg_set_timer()"
decl_name: "mg_set_timer"
symbol_kind: "func"
signature: |
  double mg_set_timer(struct mg_connection *c, double timestamp);
---

9 10
Schedules an MG_EV_TIMER event to be delivered at `timestamp` time.
`timestamp` is UNIX time (the number of seconds since Epoch). It is
11
`double` instead of `time_t` to allow for sub-second precision.
12
Returns the old timer value.
13

14
Example: set the connect timeout to 1.5 seconds:
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

```
 c = mg_connect(&mgr, "cesanta.com", ev_handler);
 mg_set_timer(c, mg_time() + 1.5);
 ...

 void ev_handler(struct mg_connection *c, int ev, void *ev_data) {
 switch (ev) {
   case MG_EV_CONNECT:
     mg_set_timer(c, 0);  // Clear connect timer
     break;
   case MG_EV_TIMER:
     log("Connect timeout");
     c->flags |= MG_F_CLOSE_IMMEDIATELY;
     break;
```