From: Vadim Zeitlin Date: Sat, 22 May 2010 16:14:16 +0000 (+0000) Subject: Added wxMessageQueue::Clear(). X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d25a864d0a1c0d18733666a5015e46da68b4fb1b Added wxMessageQueue::Clear(). This method can be called from the posting thread to remove any still pending requests if they became unnecessary. Closes #10905. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64386 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/docs/changes.txt b/docs/changes.txt index 43902e1310..1a50947943 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -448,6 +448,7 @@ All: - Added wxTranslations class to allow localization without changing locale. - Added wxResourceTranslationsLoader for loading translations from Windows resources. +- Added wxMessageQueue::Clear(). Unix: diff --git a/include/wx/msgqueue.h b/include/wx/msgqueue.h index eaf64c05ae..03d9f587c9 100644 --- a/include/wx/msgqueue.h +++ b/include/wx/msgqueue.h @@ -72,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(). diff --git a/interface/wx/msgqueue.h b/interface/wx/msgqueue.h index 3c3432f8a2..3147dcc7a9 100644 --- a/interface/wx/msgqueue.h +++ b/interface/wx/msgqueue.h @@ -20,6 +20,8 @@ should terminate as there is no other way to gracefully shutdown a thread waiting on the message queue. + @since 2.9.0 + @nolibrary @category{threading} @@ -35,6 +37,17 @@ public: */ wxMessageQueue(); + /** + 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. + + @since 2.9.1 + */ + wxMessageQueueError Clear(); + /** Returns @true if the object had been initialized successfully, @false if an error occurred.