xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Wed Sep 23 08:08:02 PDT 2015


 mi/mieq.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

New commits:
commit d2a6962474978437545120ebc1fcfb909d901d55
Author: Andy Ritger <aritger at nvidia.com>
Date:   Wed Jun 20 11:52:34 2012 -0700

    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 at keithp.com>
    Signed-off-by: Andy Ritger <aritger at nvidia.com>

diff --git a/mi/mieq.c b/mi/mieq.c
index f7d8721..01812bd 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -579,11 +579,20 @@ mieqProcessInputEvents(void)
     InternalEvent event;
     DeviceIntPtr dev = NULL, master = NULL;
     size_t n_enqueued;
+    static Bool inProcessInputEvents = FALSE;
 
 #ifdef XQUARTZ
     pthread_mutex_lock(&miEventQueueMutex);
 #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 */
     n_enqueued = mieqNumEnqueued(&miEventQueue);
     if (n_enqueued >= (miEventQueue.nevents - (2 * QUEUE_RESERVED_SIZE)) &&
@@ -642,6 +651,9 @@ mieqProcessInputEvents(void)
         pthread_mutex_lock(&miEventQueueMutex);
 #endif
     }
+
+    inProcessInputEvents = FALSE;
+
 #ifdef XQUARTZ
     pthread_mutex_unlock(&miEventQueueMutex);
 #endif


More information about the xorg-commit mailing list