]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/threadengines/threadengine_win32.h
Don't globally route SETNAME, the FNAME is sufficient. Fixes bug #875
[user/henk/code/inspircd.git] / include / threadengines / threadengine_win32.h
index c1f9f2cce08e9bdba47c41a8ad9192d099d141c4..6bd1c2c005dd2765de1df279a61dfeabaf8d33c8 100644 (file)
@@ -77,7 +77,7 @@ class CoreExport Mutex
  private:
        CRITICAL_SECTION wutex;
  public:
-       Win32Mutex()
+       Mutex()
        {
                InitializeCriticalSection(&wutex);
        }
@@ -89,11 +89,60 @@ class CoreExport Mutex
        {
                LeaveCriticalSection(&wutex);
        }
-       ~Win32Mutex()
+       ~Mutex()
        {
                DeleteCriticalSection(&wutex);
        }
 };
 
+class ThreadQueueData
+{
+       CRITICAL_SECTION mutex;
+       HANDLE event;
+ public:
+       ThreadQueueData()
+       {
+               InitializeCriticalSection(&mutex);
+               event = CreateEvent(NULL, false, false, NULL);
+       }
+
+       ~ThreadQueueData()
+       {
+               DeleteCriticalSection(&mutex);
+       }
+
+       void Lock()
+       {
+               EnterCriticalSection(&mutex);
+       }
+
+       void Unlock()
+       {
+               LeaveCriticalSection(&mutex);
+       }
+
+       void Wakeup()
+       {
+               PulseEvent(event);
+       }
+
+       void Wait()
+       {
+               LeaveCriticalSection(&mutex);
+               WaitForSingleObject(event, INFINITE);
+               EnterCriticalSection(&mutex);
+       }
+};
+
+class ThreadSignalData
+{
+ public:
+       int connFD;
+       ThreadSignalData()
+       {
+               connFD = -1;
+       }
+};
+
 #endif