Imported Upstream version 3.0.2
[debian/gnuradio] / gnuradio-core / src / lib / omnithread / nt.cc
index 644501a357a9c0599caf68e1304600b769fa654c..3853f010809292279de93a7919d18e6d88a5355a 100644 (file)
@@ -32,6 +32,7 @@
 
 #include <stdlib.h>
 #include <errno.h>
+#include <WinError.h>
 #include <omnithread.h>
 #include <process.h>
 
@@ -385,7 +386,8 @@ omni_semaphore::trywait(void)
 void
 omni_semaphore::post(void)
 {
-    if (!ReleaseSemaphore(nt_sem, 1, NULL))
+    if (!ReleaseSemaphore(nt_sem, 1, NULL)
+       && GetLastError() != ERROR_TOO_MANY_POSTS )     // MinGW fix--see ticket:95 in trac
        throw omni_thread_fatal(GetLastError());
 }