From 44b297ad7eb33cb988592a80e97c4b9753a6c47f Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Mon, 3 May 2021 18:49:19 +0200 Subject: Fixes interruption no longer working. --- src/server/conversion_main_loop.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/server/conversion_main_loop.c b/src/server/conversion_main_loop.c index 174ff26..f42d3a2 100644 --- a/src/server/conversion_main_loop.c +++ b/src/server/conversion_main_loop.c @@ -248,6 +248,7 @@ int relabsd_server_conversion_loop struct relabsd_server server [const static 1] ) { + int has_more_to_read; fd_set ready_to_read; for (;;) @@ -273,10 +274,14 @@ int relabsd_server_conversion_loop ) ) { - pthread_mutex_lock(&(server->mutex)); - /* convert all events in the libevdev buffer. */ - while (convert_input(server) > 0); - pthread_mutex_unlock(&(server->mutex)); + do + { + pthread_mutex_lock(&(server->mutex)); + /* convert all events in the libevdev buffer. */ + has_more_to_read = (convert_input(server) > 0); + pthread_mutex_unlock(&(server->mutex)); + } + while (has_more_to_read && relabsd_server_keep_running()); } break; -- cgit v1.2.3-70-g09d2