diff options
author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-05-03 18:49:19 +0200 |
---|---|---|
committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-05-03 18:49:19 +0200 |
commit | 44b297ad7eb33cb988592a80e97c4b9753a6c47f (patch) | |
tree | 28167663233594888fd2bf7140a38ec5cbe2f99d | |
parent | b3d9e2e69163ff17a0023d08daa5ab0f3e1551a0 (diff) | |
download | relabsd-44b297ad7eb33cb988592a80e97c4b9753a6c47f.zip relabsd-44b297ad7eb33cb988592a80e97c4b9753a6c47f.tar.bz2 |
Fixes interruption no longer working.
-rw-r--r-- | src/server/conversion_main_loop.c | 13 |
1 files 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; |