runs on a threadpool thread. Must not hold timer_lock.
| 2583 | |
| 2584 | // runs on a threadpool thread. Must not hold timer_lock. |
| 2585 | VOID CALLBACK timeout_cb(PVOID arg, BOOLEAN /* ignored*/ ) { |
| 2586 | pn_proactor_t *p = (pn_proactor_t *) arg; |
| 2587 | csguard gtimer(&p->timer_lock); |
| 2588 | csguard g(&p->context.cslock); |
| 2589 | if (p->timeout_set) |
| 2590 | p->need_timeout = true; // else cancelled |
| 2591 | p->timeout_set = false; |
| 2592 | if (p->need_timeout) |
| 2593 | proactor_wake(p); |
| 2594 | } |
| 2595 | |
| 2596 | void pn_proactor_set_timeout(pn_proactor_t *p, pn_millis_t t) { |
| 2597 | bool ticking = false; |
nothing calls this directly
no test coverage detected