diff options
Diffstat (limited to 'src/VBox/Main/glue/EventQueue.cpp')
-rw-r--r-- | src/VBox/Main/glue/EventQueue.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/VBox/Main/glue/EventQueue.cpp b/src/VBox/Main/glue/EventQueue.cpp index 1216f512e..e812277f3 100644 --- a/src/VBox/Main/glue/EventQueue.cpp +++ b/src/VBox/Main/glue/EventQueue.cpp @@ -1,4 +1,4 @@ -/* $Id: EventQueue.cpp 33720 2010-11-03 10:54:42Z vboxsync $ */ +/* $Id: EventQueue.cpp $ */ /** @file * MS COM / XPCOM Abstraction Layer: * Event and EventQueue class declaration @@ -29,6 +29,7 @@ #include <iprt/err.h> #include <iprt/time.h> #include <iprt/thread.h> +#include <iprt/log.h> #ifdef USE_XPCOM_QUEUE # include <errno.h> #endif @@ -340,6 +341,13 @@ static int waitForEventsOnXPCOM(nsIEventQueue *pQueue, RTMSINTERVAL cMsTimeout) rc = VINF_INTERRUPTED; else { + static uint32_t s_ErrorCount = 0; + if (s_ErrorCount < 500) + { + LogRel(("waitForEventsOnXPCOM rc=%d errno=%d\n", rc, errno)); + ++s_ErrorCount; + } + AssertMsgFailed(("rc=%d errno=%d\n", rc, errno)); rc = VERR_INTERNAL_ERROR_4; } @@ -510,7 +518,8 @@ int EventQueue::processEventQueue(RTMSINTERVAL cMsTimeout) } if ( ( RT_SUCCESS(rc) - || rc == VERR_INTERRUPTED) + || rc == VERR_INTERRUPTED + || rc == VERR_TIMEOUT) && mInterrupted) { mInterrupted = false; |