X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6aaee6afdcde7c9e677f642303d4988a66cb9dc9..7344108e8a129a3f9b4df5ab0f98a1713db03b89:/include/wx/msgqueue.h diff --git a/include/wx/msgqueue.h b/include/wx/msgqueue.h index eda5cc992c..5a66fc82c7 100644 --- a/include/wx/msgqueue.h +++ b/include/wx/msgqueue.h @@ -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 #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 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().