#include "wx/thread.h"
#ifndef WX_PRECOMP
+ #include "wx/msw/missing.h"
#include "wx/intl.h"
#include "wx/app.h"
+ #include "wx/module.h"
#endif
#include "wx/apptrait.h"
#include "wx/scopeguard.h"
#include "wx/msw/private.h"
-#include "wx/msw/missing.h"
#include "wx/msw/seh.h"
#include "wx/except.h"
-#include "wx/module.h"
// must have this symbol defined to get _beginthread/_endthread declarations
#ifndef _MT
{
#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
}
// ----------------------------------------------------------------------------