mi: Log an error if mieqProcessInputEvents() recurses.
v2: Uses BUG_WARN_MSG to also provide a stack trace. (Peter Hutterer) Signed-off-by: Keith Packard <keithp@keithp.com> Signed-off-by: Andy Ritger <aritger@nvidia.com>
This commit is contained in:
parent
cc57ab4fc8
commit
d2a6962474
12
mi/mieq.c
12
mi/mieq.c
|
@ -579,11 +579,20 @@ mieqProcessInputEvents(void)
|
||||||
InternalEvent event;
|
InternalEvent event;
|
||||||
DeviceIntPtr dev = NULL, master = NULL;
|
DeviceIntPtr dev = NULL, master = NULL;
|
||||||
size_t n_enqueued;
|
size_t n_enqueued;
|
||||||
|
static Bool inProcessInputEvents = FALSE;
|
||||||
|
|
||||||
#ifdef XQUARTZ
|
#ifdef XQUARTZ
|
||||||
pthread_mutex_lock(&miEventQueueMutex);
|
pthread_mutex_lock(&miEventQueueMutex);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* report an error if mieqProcessInputEvents() is called recursively;
|
||||||
|
* this can happen, e.g., if something in the mieqProcessDeviceEvent()
|
||||||
|
* call chain calls UpdateCurrentTime() instead of UpdateCurrentTimeIf()
|
||||||
|
*/
|
||||||
|
BUG_WARN_MSG(inProcessInputEvents, "[mi] mieqProcessInputEvents() called recursively.\n");
|
||||||
|
inProcessInputEvents = TRUE;
|
||||||
|
|
||||||
/* Grow our queue if we are reaching capacity: < 2 * QUEUE_RESERVED_SIZE remaining */
|
/* Grow our queue if we are reaching capacity: < 2 * QUEUE_RESERVED_SIZE remaining */
|
||||||
n_enqueued = mieqNumEnqueued(&miEventQueue);
|
n_enqueued = mieqNumEnqueued(&miEventQueue);
|
||||||
if (n_enqueued >= (miEventQueue.nevents - (2 * QUEUE_RESERVED_SIZE)) &&
|
if (n_enqueued >= (miEventQueue.nevents - (2 * QUEUE_RESERVED_SIZE)) &&
|
||||||
|
@ -642,6 +651,9 @@ mieqProcessInputEvents(void)
|
||||||
pthread_mutex_lock(&miEventQueueMutex);
|
pthread_mutex_lock(&miEventQueueMutex);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inProcessInputEvents = FALSE;
|
||||||
|
|
||||||
#ifdef XQUARTZ
|
#ifdef XQUARTZ
|
||||||
pthread_mutex_unlock(&miEventQueueMutex);
|
pthread_mutex_unlock(&miEventQueueMutex);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue