diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2017-02-07 16:53:09 -0600 |
---|---|---|
committer | Derek Foreman <derekf@osg.samsung.com> | 2017-02-07 16:53:09 -0600 |
commit | b04fa2ddba67528c1faacbac6d864b6b21f3dd64 (patch) | |
tree | 7add619aa884d4ee66d09f1c41d8529eac8d9dbb /src/lib/elput | |
parent | ab68723b60e13ef4b248b24d9a362098eb1a5ccc (diff) |
elput: Fix async input shutdown during init
By only checking if the thread was cancelled *after* sending feedback
to the main thread we ended up claiming all the devices libinput
asked for in a way that never allowed them to be released
(how the hell can a cancelled thread send feedback?)
Diffstat (limited to 'src/lib/elput')
-rw-r--r-- | src/lib/elput/elput_input.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lib/elput/elput_input.c b/src/lib/elput/elput_input.c index cc29cfc4a6..8e10495028 100644 --- a/src/lib/elput/elput_input.c +++ b/src/lib/elput/elput_input.c | |||
@@ -12,6 +12,7 @@ _cb_open_restricted(const char *path, int flags, void *data) | |||
12 | if (!em->input.thread) | 12 | if (!em->input.thread) |
13 | return em->interface->open(em, path, flags); | 13 | return em->interface->open(em, path, flags); |
14 | if (!em->interface->open_async) return ret; | 14 | if (!em->interface->open_async) return ret; |
15 | if (ecore_thread_check(em->input.thread)) return ret; | ||
15 | ao = calloc(1, sizeof(Elput_Async_Open)); | 16 | ao = calloc(1, sizeof(Elput_Async_Open)); |
16 | if (!ao) return ret; | 17 | if (!ao) return ret; |
17 | if (pipe2(p, O_CLOEXEC) < 0) | 18 | if (pipe2(p, O_CLOEXEC) < 0) |