3 Commits

Author SHA1 Message Date
4b4e7bd257 Refactor async_exec 2023-01-02 17:32:13 +01:00
8d6b7105f3 Using sock_recv in sock_check 2023-01-02 17:28:40 +01:00
95e2ddb24c Fix clock_micros() 2023-01-02 17:28:08 +01:00
3 changed files with 11 additions and 11 deletions

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

View File

@@ -154,7 +154,7 @@ int sock_close(sock *s) {
int sock_check(sock *s) {
char buf;
int e = errno;
long ret = recv(s->socket, &buf, 1, MSG_PEEK | MSG_DONTWAIT);
long ret = sock_recv(s, &buf, 1, MSG_PEEK | MSG_DONTWAIT);
errno = e;
return ret == 1;
}

View File

@@ -208,5 +208,5 @@ int base64_encode(void *data, unsigned long data_len, char *output, unsigned lon
long clock_micros(void) {
struct timespec time;
clock_gettime(CLOCK_MONOTONIC, &time);
return time.tv_sec * 10000000 + time.tv_nsec / 1000;
return time.tv_sec * 1000000 + time.tv_nsec / 1000;
}