X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6aaee6afdcde7c9e677f642303d4988a66cb9dc9..66c2bf7b1d9326fb650acfaae22ec50528cfbf7c:/include/wx/msgqueue.h diff --git a/include/wx/msgqueue.h b/include/wx/msgqueue.h index eda5cc992c..8b8da87d18 100644 --- a/include/wx/msgqueue.h +++ b/include/wx/msgqueue.h @@ -1,9 +1,8 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: wx/thread.h +// Name: wx/msqqueue.h // Purpose: Message queues for inter-thread communication // Author: Evgeniy Tarassov // Created: 2007-10-31 -// RCS-ID: $Id$ // Copyright: (C) 2007 TT-Solutions SARL // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -19,6 +18,8 @@ #if wxUSE_THREADS +#include "wx/stopwatch.h" + #include "wx/beforestd.h" #include #include "wx/afterstd.h" @@ -70,6 +71,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().