Browse Source

fix cpu consume at idle

congestion
Evgeny 6 months ago
parent
commit
189a93c71d
  1. 27
      lib/u_async.c

27
lib/u_async.c

@ -867,20 +867,19 @@ void uasync_poll(struct UASYNC* ua, int timeout_tb) {
req_timeout.tv_usec = (timeout_tb % 10000) * 100; req_timeout.tv_usec = (timeout_tb % 10000) * 100;
} }
// Use minimum of requested and next timer if both finite struct timeval poll_timeout;
struct timeval poll_timeout; if (timeout_tb < 0) {
if (timeout_tb < 0) { poll_timeout = next_timeout;
// Infinite requested - use next timer if any } else {
poll_timeout = next_timeout; if (next_timeout.tv_sec < req_timeout.tv_sec ||
} else { (next_timeout.tv_sec == req_timeout.tv_sec && next_timeout.tv_usec < req_timeout.tv_usec)) {
// Finite requested - min of requested and next poll_timeout = next_timeout;
if (next_timeout.tv_sec < req_timeout.tv_sec || } else {
(next_timeout.tv_sec == req_timeout.tv_sec && next_timeout.tv_usec < req_timeout.tv_usec)) { poll_timeout = req_timeout;
poll_timeout = next_timeout; }
} else { }
poll_timeout = req_timeout; if (poll_timeout.tv_sec == 0 && poll_timeout.tv_usec == 0 && timeout_tb > 0) poll_timeout = req_timeout;
}
}
int timeout_ms; int timeout_ms;
if (timeout_tb < 0 && (next_timeout.tv_sec > 0 || next_timeout.tv_usec > 0)) { if (timeout_tb < 0 && (next_timeout.tv_sec > 0 || next_timeout.tv_usec > 0)) {

Loading…
Cancel
Save