]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msgqueue.h
Replaced Ok() occurrences with IsOk() throughout trunk.
[wxWidgets.git] / include / wx / msgqueue.h
index eaf64c05ae84183e233b293a70af5a9647e1612b..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
 // Purpose:     Message queues for inter-thread communication
 // Author:      Evgeniy Tarassov
 // Created:     2007-10-31
@@ -72,6 +72,22 @@ public:
         return wxMSGQUEUE_NO_ERROR;
     }
 
         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().
     // Wait no more than timeout milliseconds until a message becomes available.
     //
     // Setting timeout to 0 is equivalent to an infinite timeout. See Receive().