X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=include%2Fthreadengines%2Fthreadengine_win32.h;h=59848bd44e3004b2c84f4c6d1aab067e5a8a7d82;hb=e244cb2c63b1ac1d85bdbb4691f7b1bd940ae804;hp=0fc9b27bcaa405ccd54e6eed6dda15a3a82050e4;hpb=59dbcc1245468218ec7e2372b2678351382a34f0;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/include/threadengines/threadengine_win32.h b/include/threadengines/threadengine_win32.h index 0fc9b27bc..59848bd44 100644 --- a/include/threadengines/threadengine_win32.h +++ b/include/threadengines/threadengine_win32.h @@ -1,23 +1,28 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ +/* + * InspIRCd -- Internet Relay Chat Daemon * - * InspIRCd: (C) 2002-2009 InspIRCd Development Team - * See: http://wiki.inspircd.org/Credits + * Copyright (C) 2009 Daniel De Graaf + * Copyright (C) 2008 Craig Edwards * - * This program is free but copyrighted software; see - * the file COPYING for details. + * This file is part of InspIRCd. InspIRCd is free software: you can + * redistribute it and/or modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation, version 2. * - * --------------------------------------------------- + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . */ -#ifndef __THREADENGINE_WIN32THREAD__ -#define __THREADENGINE_WIN32THREAD__ -#include "inspircd_config.h" +#pragma once + +#include "config.h" #include "base.h" -class InspIRCd; class Thread; /** The ThreadEngine class has the responsibility of initialising @@ -30,11 +35,11 @@ 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: - ThreadEngine(InspIRCd* Instance); + ThreadEngine(); virtual ~ThreadEngine(); @@ -77,7 +82,7 @@ class CoreExport Mutex private: CRITICAL_SECTION wutex; public: - Win32Mutex() + Mutex() { InitializeCriticalSection(&wutex); } @@ -89,7 +94,7 @@ class CoreExport Mutex { LeaveCriticalSection(&wutex); } - ~Win32Mutex() + ~Mutex() { DeleteCriticalSection(&wutex); } @@ -102,12 +107,15 @@ class ThreadQueueData public: ThreadQueueData() { - InitializeCriticalSection(&mutex); event = CreateEvent(NULL, false, false, NULL); + if (event == NULL) + throw CoreException("CreateEvent() failed in ThreadQueueData::ThreadQueueData()!"); + InitializeCriticalSection(&mutex); } ~ThreadQueueData() { + CloseHandle(event); DeleteCriticalSection(&mutex); } @@ -143,6 +151,3 @@ class ThreadSignalData connFD = -1; } }; - -#endif -