mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-04 18:48:10 +02:00
os: log a bug whenever WriteToClient is called from the input thread
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 <peter.hutterer@who-t.net> Tested-by: Olivier Fourdan <ofourdan@redhat.com> Reviewed-by: Olivier Fourdan <ofourdan@redhat.com>
This commit is contained in:
parent
7d7788e0f2
commit
1b12249fd6
3 changed files with 12 additions and 0 deletions
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
3
os/io.c
3
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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue