Refactor async_exec

This commit is contained in:
2023-01-02 17:32:13 +01:00
parent 8d6b7105f3
commit 4b4e7bd257

View File

@ -42,28 +42,28 @@ static int async_add_to_queue(evt_listen_t *evt) {
} }
static int async_exec(evt_listen_t *evt, short r_events) { static int async_exec(evt_listen_t *evt, short r_events) {
int ret, e = errno;
if (r_events & evt->events) { if (r_events & evt->events) {
// specified event(s) occurred // specified event(s) occurred
if (evt->socket && !sock_check(evt->socket)) { if (evt->socket && !sock_check(evt->socket)) {
evt->err_cb(evt->err_arg); evt->err_cb(evt->err_arg);
errno = 0; ret = 0;
} else { } else {
evt->cb(evt->arg); evt->cb(evt->arg);
errno = 0; ret = (evt->flags & ASYNC_KEEP) ? 1 : 0;
if (evt->flags & ASYNC_KEEP)
return 1;
} }
return 0;
} else if (r_events & (POLLERR | POLLHUP | POLLNVAL)) { } else if (r_events & (POLLERR | POLLHUP | POLLNVAL)) {
// error occurred // error occurred
evt->err_cb(evt->err_arg); evt->err_cb(evt->err_arg);
errno = 0; ret = 0;
return 0;
} else { } else {
// no event occurred // no event occurred
return -1; ret = -1;
} }
logger_set_prefix("");
errno = e;
return ret;
} }
static int async_check(evt_listen_t *evt) { static int async_check(evt_listen_t *evt) {