aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2021-05-03 18:49:19 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2021-05-03 18:49:19 +0200
commit44b297ad7eb33cb988592a80e97c4b9753a6c47f (patch)
tree28167663233594888fd2bf7140a38ec5cbe2f99d
parentb3d9e2e69163ff17a0023d08daa5ab0f3e1551a0 (diff)
downloadrelabsd-44b297ad7eb33cb988592a80e97c4b9753a6c47f.zip
relabsd-44b297ad7eb33cb988592a80e97c4b9753a6c47f.tar.bz2
Fixes interruption no longer working.
-rw-r--r--src/server/conversion_main_loop.c13
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;