From 4b4e7bd257b63cdecf17d0cf12e7aa68e8eec180 Mon Sep 17 00:00:00 2001
From: Lorenz Stechauner <lorenz.stechauner@necronda.net>
Date: Mon, 2 Jan 2023 17:32:13 +0100
Subject: [PATCH] Refactor async_exec

---
 src/async.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/async.c b/src/async.c
index 78d327d..e386d5a 100644
--- a/src/async.c
+++ b/src/async.c
@@ -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) {