]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/threadengines/threadengine_win32.h
Remove unneeded Extensible inheritance and remove "age" field from classbase
[user/henk/code/inspircd.git] / include / threadengines / threadengine_win32.h
index c1f9f2cce08e9bdba47c41a8ad9192d099d141c4..64ad87ab879d43c2c19b2c2c88d26a0b32513d85 100644 (file)
@@ -30,7 +30,7 @@ class Thread;
  * access non-threadsafe code from a Thread, use the Mutex class to wrap
  * access to the code carefully.
  */
-class CoreExport ThreadEngine : public Extensible
+class CoreExport ThreadEngine
 {
  public:
 
@@ -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