]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/threadengines/threadengine_win32.cpp
Add parameter to InspIRCd::TimeString for UTC time formats.
[user/henk/code/inspircd.git] / src / threadengines / threadengine_win32.cpp
index 77f638f3715e50e846dd4f41d7c700a103abf841..90fe60b91e8ebd58c0ae0395bc7fc9d78ead3be7 100644 (file)
 
 void ThreadEngine::Start(Thread* thread)
 {
-       ThreadData* data = new ThreadData;
-       thread->state = data;
+       thread->state.handle = CreateThread(NULL, 0, ThreadEngine::Entry, thread, 0, NULL);
 
-       DWORD ThreadId = 0;
-       data->handle = CreateThread(NULL,0,ThreadEngine::Entry,thread,0,&ThreadId);
-
-       if (data->handle == NULL)
+       if (thread->state.handle == NULL)
        {
                DWORD lasterr = GetLastError();
-               thread->state = NULL;
-               delete data;
                std::string err = "Unable to create new thread: " + ConvToStr(lasterr);
                SetLastError(ERROR_SUCCESS);
                throw CoreException(err);
@@ -47,9 +41,10 @@ DWORD WINAPI ThreadEngine::Entry(void* parameter)
        return 0;
 }
 
-void ThreadData::FreeThread(Thread* thread)
+void ThreadEngine::Stop(Thread* thread)
 {
        thread->SetExitFlag();
+       HANDLE handle = thread->state.handle;
        WaitForSingleObject(handle,INFINITE);
        CloseHandle(handle);
 }