* ---------------------------------------------------
*/
-#ifndef __THREADENGINE_PTHREAD__
-#define __THREADENGINE_PTHREAD__
+#ifndef __THREADENGINE_WIN32THREAD__
+#define __THREADENGINE_WIN32THREAD__
#include "inspircd_config.h"
#include "base.h"
class CoreExport Win32ThreadEngine : public ThreadEngine
{
+ protected:
+
+ bool Mutex(bool enable);
+
public:
Win32ThreadEngine(InspIRCd* Instance);
virtual ~Win32ThreadEngine();
- bool Mutex(bool enable);
-
void Run();
static DWORD WINAPI Entry(void* parameter);
}
};
-class ThreadEngineFactory : public classbase
+class CoreExport ThreadEngineFactory : public classbase
{
public:
ThreadEngine* Create(InspIRCd* ServerInstance)
}
};
+class CoreExport Win32Mutex : public Mutex
+{
+ private:
+ CRITICAL_SECTION wutex;
+ public:
+ Win32Mutex(InspIRCd* Instance);
+ virtual void Enable(bool enable);
+ ~Win32Mutex();
+};
+
+class CoreExport MutexFactory : public Extensible
+{
+ protected:
+ InspIRCd* ServerInstance;
+ public:
+ MutexFactory(InspIRCd* Instance);
+ virtual Mutex* CreateMutex();
+};
+
#endif