From 5646dd9e85cb1a2703cdaa2a8f1a307fb66c6b88 Mon Sep 17 00:00:00 2001 From: notaz Date: Sun, 14 Nov 2010 22:46:46 +0200 Subject: [PATCH] fix deadlock if ts_cb is not set --- src/video/omapdss/osdl_input.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/video/omapdss/osdl_input.c b/src/video/omapdss/osdl_input.c index 5cc8499..fff2ca2 100644 --- a/src/video/omapdss/osdl_input.c +++ b/src/video/omapdss/osdl_input.c @@ -636,9 +636,7 @@ int omapsdl_input_get_events(int timeout_ms, fd = osdl_evdev_devs[i]; #if SDL_INPUT_TSLIB - if (fd == osdl_tslib_fd) { - if (ts_cb == NULL) - continue; + if (fd == osdl_tslib_fd && ts_cb != NULL) { while (1) { struct ts_sample tss; ret = ts_read(osdl_tslib_dev, &tss, 1); @@ -650,7 +648,9 @@ int omapsdl_input_get_events(int timeout_ms, } continue; } + /* else read below will consume the event, even if it's from ts */ #endif + while (1) { ret = read(fd, &ev, sizeof(ev)); if (ret < (int)sizeof(ev)) { -- 2.39.5