From a0020fcd54b43f28e9c72ebf0516b0751a08536b Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Tue, 3 Oct 2006 15:05:40 +0000 Subject: [PATCH] make wxSemaphore::Post() return wxSEMA_OVERFLOW as documented (patch 1557642) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41593 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- docs/changes.txt | 1 + src/msw/thread.cpp | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/changes.txt b/docs/changes.txt index f302ff6486..98bd418cc1 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -76,6 +76,7 @@ All (GUI): wxMSW: - Implemented wxComboBox::SetEditable(). +- wxSemaphore::Post() returns wxSEMA_OVERFLOW as documented (Christian Walther) - Fixed a bug whereby static controls didn't use the correct text colour if the parent's background colour had been set (most noticeable when switching to a high-contrast theme). diff --git a/src/msw/thread.cpp b/src/msw/thread.cpp index b48ed592cd..ee7fec670d 100644 --- a/src/msw/thread.cpp +++ b/src/msw/thread.cpp @@ -355,14 +355,22 @@ wxSemaError wxSemaphoreInternal::Post() { #if !defined(_WIN32_WCE) || (_WIN32_WCE >= 300) if ( !::ReleaseSemaphore(m_semaphore, 1, NULL /* ptr to previous count */) ) -#endif { - wxLogLastError(_T("ReleaseSemaphore")); - - return wxSEMA_MISC_ERROR; + if ( GetLastError() == ERROR_TOO_MANY_POSTS ) + { + return wxSEMA_OVERFLOW; + } + else + { + wxLogLastError(_T("ReleaseSemaphore")); + return wxSEMA_MISC_ERROR; + } } return wxSEMA_NO_ERROR; +#else + return wxSEMA_MISC_ERROR; +#endif } // ---------------------------------------------------------------------------- -- 2.47.2