]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msgqueue.h
Document wxKill(wxSIGTERM) reliance on having an open window in wxMSW.
[wxWidgets.git] / include / wx / msgqueue.h
index eda5cc992cab2e3dc9acca717cc0e7d8756e2693..5a66fc82c7609e123c7d1b9c124ea18cf34ac7b6 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        wx/thread.h
+// Name:        wx/msqqueue.h
 // Purpose:     Message queues for inter-thread communication
 // Author:      Evgeniy Tarassov
 // Created:     2007-10-31
@@ -19,6 +19,8 @@
 
 #if wxUSE_THREADS
 
+#include "wx/stopwatch.h"
+
 #include "wx/beforestd.h"
 #include <queue>
 #include "wx/afterstd.h"
@@ -70,6 +72,22 @@ public:
         return wxMSGQUEUE_NO_ERROR;
     }
 
+    // Remove all messages from the queue.
+    //
+    // This method is meant to be called from the same thread(s) that call
+    // Post() to discard any still pending requests if they became unnecessary.
+    wxMessageQueueError Clear()
+    {
+        wxCHECK( IsOk(), wxMSGQUEUE_MISC_ERROR );
+
+        wxMutexLocker locker(m_mutex);
+
+        std::queue<T> empty;
+        std::swap(m_messages, empty);
+
+        return wxMSGQUEUE_NO_ERROR;
+    }
+
     // Wait no more than timeout milliseconds until a message becomes available.
     //
     // Setting timeout to 0 is equivalent to an infinite timeout. See Receive().