Don't put readers into the dead reader storage 50/299450/2
authorMichal Bloch <m.bloch@samsung.com>
Fri, 22 Sep 2023 17:25:07 +0000 (19:25 +0200)
committerMichal Bloch <m.bloch@samsung.com>
Fri, 29 Sep 2023 14:48:46 +0000 (16:48 +0200)
This means the cleanup has to wait until the next daemon iteration,
which often takes up to 1s because it's sleeping on epoll.
This in turn creates unacceptable (according to tests) delays.

Change-Id: I4c546d8e3479b7498c9ed2def85b7f710672b064

src/logger/logger.c

index a49547e..67eb411 100644 (file)
@@ -172,6 +172,11 @@ void reader_thread_finished(struct reader_common *reader)
        struct logger *const server = reader->server;
        assert(server);
 
+#if 0
+       /* This should get replaced by an immediate cleanup of
+        * the reader, and only the thread ID would get put into
+        * the storage. It was not done so due to a tight deadline. */
+
        int r = pthread_mutex_lock(&server->drs_lock);
        assert(!r);
 
@@ -182,6 +187,7 @@ void reader_thread_finished(struct reader_common *reader)
 
        if (ok)
                return;
+#endif
 
        thread_seppuku(reader); // prevent a leak
        __builtin_unreachable();