diff options
author | click <none@none> | 2010-12-10 00:33:55 +0100 |
---|---|---|
committer | click <none@none> | 2010-12-10 00:33:55 +0100 |
commit | 456f29c0895878f66758329107c2691797777f23 (patch) | |
tree | 09f8a84b2ee2bdab37c78b0eadb30fdc973bb948 /dep/sockets/Thread.cpp | |
parent | ef768a8307dc9a5da894c04b2f88baa46e0bedc7 (diff) |
Core/Worldserver: Remove external dependency to sockets-library after RemoteAccess being converted to ACE, and fix one minor hiccup on non-PCH builds
--HG--
branch : trunk
Diffstat (limited to 'dep/sockets/Thread.cpp')
-rw-r--r-- | dep/sockets/Thread.cpp | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/dep/sockets/Thread.cpp b/dep/sockets/Thread.cpp deleted file mode 100644 index 773e9f214fa..00000000000 --- a/dep/sockets/Thread.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/** \file Thread.cpp - ** \date 2004-10-30 - ** \author grymse@alhem.net -**/ -/* -Copyright (C) 2004-2007 Anders Hedstrom - -This library is made available under the terms of the GNU GPL. - -If you would like to use this library in a closed-source application, -a separate license agreement is available. For information about -the closed-source license agreement for the C++ sockets library, -please visit http://www.alhem.net/Sockets/license.html and/or -email license@alhem.net. - -This program 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; either version 2 -of the License, or (at your option) any later version. - -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, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ -#include <stdio.h> -#ifdef _WIN32 -#include <process.h> -#include "socket_include.h" -#else -#include <unistd.h> -#endif - -#include "Thread.h" - -#ifdef SOCKETS_NAMESPACE -namespace SOCKETS_NAMESPACE { -#endif - -Thread::Thread(bool release) -:m_thread(0) -,m_running(true) -,m_release(false) -,m_b_delete_on_exit(false) -,m_b_destructor(false) -{ -#ifdef _WIN32 -// m_thread = ::CreateThread(NULL, 0, StartThread, this, 0, &m_dwThreadId); - m_thread = (HANDLE)_beginthreadex(NULL, 0, &StartThread, this, 0, &m_dwThreadId); -#else - pthread_attr_t attr; - - pthread_attr_init(&attr); - pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED); - if (pthread_create(&m_thread,&attr, StartThread,this) == -1) - { - perror("Thread: create failed"); - SetRunning(false); - } -// pthread_attr_destroy(&attr); -#endif - m_release = release; -} - -Thread::~Thread() -{ - m_b_destructor = true; - if (m_running) - { - SetRelease(true); - SetRunning(false); -#ifdef _WIN32 - Sleep(1000); -#else - sleep(1); -#endif - } -#ifdef _WIN32 - if (m_thread) - ::CloseHandle(m_thread); -#endif -} - -threadfunc_t STDPREFIX Thread::StartThread(threadparam_t zz) -{ - Thread *p = (Thread *)zz; - - while (p -> m_running && !p -> m_release) - { -#ifdef _WIN32 - Sleep(1000); -#else - sleep(1); -#endif - } - if (p -> m_running) - { - p -> Run(); - } - p -> SetRunning(false); // if return - if (p -> DeleteOnExit() && !p -> IsDestructor()) - { - delete p; - } -#ifdef _WIN32 - _endthreadex(0); -#endif - return (threadfunc_t)NULL; -} - -bool Thread::IsRunning() -{ - return m_running; -} - -void Thread::SetRunning(bool x) -{ - m_running = x; -} - -bool Thread::IsReleased() -{ - return m_release; -} - -void Thread::SetRelease(bool x) -{ - m_release = x; -} - -bool Thread::DeleteOnExit() -{ - return m_b_delete_on_exit; -} - -void Thread::SetDeleteOnExit(bool x) -{ - m_b_delete_on_exit = x; -} - -bool Thread::IsDestructor() -{ - return m_b_destructor; -} - -#ifdef SOCKETS_NAMESPACE -} -#endif - - |