> The input thread should generate events, not send them. Make it easier to > find the instances where it's doing so. > > Signed-off-by: Peter Hutterer <[email protected]> > Tested-by: Olivier Fourdan <[email protected]> > --- > Changes to v1: > - add check for InputThreadInfo to avoid null-pointer dereference > - remove leftover declaration for in_input_thread > > include/input.h | 1 + > os/inputthread.c | 8 ++++++++ > os/io.c | 3 +++ > 3 files changed, 12 insertions(+) > > diff --git a/include/input.h b/include/input.h > index bb58b22..6c9e45d 100644 > --- a/include/input.h > +++ b/include/input.h > @@ -722,6 +722,7 @@ extern _X_HIDDEN void input_constrain_cursor(DeviceIntPtr > pDev, ScreenPtr screen > extern _X_EXPORT void input_lock(void); > extern _X_EXPORT void input_unlock(void); > extern _X_EXPORT void input_force_unlock(void); > +extern _X_EXPORT int in_input_thread(void); > > extern void InputThreadPreInit(void); > extern void InputThreadInit(void); > diff --git a/os/inputthread.c b/os/inputthread.c > index 4400fba..e7159c7 100644 > --- a/os/inputthread.c > +++ b/os/inputthread.c > @@ -90,6 +90,13 @@ static pthread_mutex_t input_mutex; > static Bool input_mutex_initialized; > #endif > > +int > +in_input_thread(void) > +{ > + return inputThreadInfo && > + pthread_equal(pthread_self(), inputThreadInfo->thread); > +} > + > void > input_lock(void) > { > @@ -531,6 +538,7 @@ void input_force_unlock(void) {} > void InputThreadPreInit(void) {} > void InputThreadInit(void) {} > void InputThreadFini(void) {} > +int in_input_thread(void) { return 0; } > > int InputThreadRegisterDev(int fd, > NotifyFdProcPtr readInputProc, > diff --git a/os/io.c b/os/io.c > index be85226..8aa51a1 100644 > --- a/os/io.c > +++ b/os/io.c > @@ -651,6 +651,9 @@ WriteToClient(ClientPtr who, int count, const void > *__buf) > int padBytes; > const char *buf = __buf; > > + BUG_RETURN_VAL_MSG(in_input_thread(), 0, > + "******** %s called from input thread *********\n", > __func__); > + > #ifdef DEBUG_COMMUNICATION > Bool multicount = FALSE; > #endif
Looks good to me :) Reviewed-by: Olivier Fourdan <[email protected]> Cheers, Olivier _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel
