From 9588c1d92b20573c2bd214b44a15e41fd8cf35b4 Mon Sep 17 00:00:00 2001 From: leak Date: Mon, 30 Jun 2014 16:28:55 +0200 Subject: Replace ACE thread/mutex in OpenSSLCrypto --- src/server/shared/Cryptography/OpenSSLCrypto.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'src/server/shared/Cryptography/OpenSSLCrypto.cpp') diff --git a/src/server/shared/Cryptography/OpenSSLCrypto.cpp b/src/server/shared/Cryptography/OpenSSLCrypto.cpp index bd72459e9df..d4e06dfd661 100644 --- a/src/server/shared/Cryptography/OpenSSLCrypto.cpp +++ b/src/server/shared/Cryptography/OpenSSLCrypto.cpp @@ -17,28 +17,23 @@ #include #include -#include #include -#include +#include +#include -std::vector cryptoLocks; +std::vector cryptoLocks; static void lockingCallback(int mode, int type, const char* /*file*/, int /*line*/) { if (mode & CRYPTO_LOCK) - cryptoLocks[type]->acquire(); + cryptoLocks[type]->lock(); else - cryptoLocks[type]->release(); + cryptoLocks[type]->unlock(); } static void threadIdCallback(CRYPTO_THREADID * id) { -/// ACE_thread_t turns out to be a struct under Mac OS. -#ifndef __APPLE__ - CRYPTO_THREADID_set_numeric(id, ACE_Thread::self()); -#else - CRYPTO_THREADID_set_pointer(id, ACE_Thread::self()); -#endif + CRYPTO_THREADID_set_numeric(id, std::this_thread::get_id().hash()); } void OpenSSLCrypto::threadsSetup() @@ -46,7 +41,7 @@ void OpenSSLCrypto::threadsSetup() cryptoLocks.resize(CRYPTO_num_locks()); for(int i = 0 ; i < CRYPTO_num_locks(); ++i) { - cryptoLocks[i] = new ACE_Thread_Mutex(); + cryptoLocks[i] = new std::mutex; } CRYPTO_THREADID_set_callback(threadIdCallback); CRYPTO_set_locking_callback(lockingCallback); @@ -61,4 +56,4 @@ void OpenSSLCrypto::threadsCleanup() delete cryptoLocks[i]; } cryptoLocks.resize(0); -} \ No newline at end of file +} -- cgit v1.2.3 From 6eaffdac513ff059be1f9f314316a99f1119dc4c Mon Sep 17 00:00:00 2001 From: Subv Date: Wed, 9 Jul 2014 11:32:49 -0500 Subject: Nuked some compiler errors on Linux --- src/server/game/Maps/MapUpdater.h | 3 ++- src/server/game/Server/WorldSession.h | 4 ++-- src/server/game/World/World.h | 2 +- src/server/shared/Cryptography/OpenSSLCrypto.cpp | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src/server/shared/Cryptography/OpenSSLCrypto.cpp') diff --git a/src/server/game/Maps/MapUpdater.h b/src/server/game/Maps/MapUpdater.h index 7b9c4443a54..c499110173e 100644 --- a/src/server/game/Maps/MapUpdater.h +++ b/src/server/game/Maps/MapUpdater.h @@ -25,6 +25,7 @@ #include #include "ProducerConsumerQueue.h" +class MapUpdateRequest; class Map; class MapUpdater @@ -48,7 +49,7 @@ class MapUpdater private: - ProducerConsumerQueue _queue; + ProducerConsumerQueue _queue; std::vector _workerThreads; std::atomic _cancelationToken; diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h index 06ae5d4f635..7ad43907355 100644 --- a/src/server/game/Server/WorldSession.h +++ b/src/server/game/Server/WorldSession.h @@ -1002,8 +1002,8 @@ class WorldSession bool m_playerSave; LocaleConstant m_sessionDbcLocale; LocaleConstant m_sessionDbLocaleIndex; - std::atomic_uint32_t m_latency; - std::atomic_uint32_t m_clientTimeDelay; + std::atomic m_latency; + std::atomic m_clientTimeDelay; AccountData m_accountData[NUM_ACCOUNT_DATA_TYPES]; uint32 m_Tutorials[MAX_ACCOUNT_TUTORIAL_VALUES]; bool m_TutorialsChanged; diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h index d14d5adf37a..22dece5d4f0 100644 --- a/src/server/game/World/World.h +++ b/src/server/game/World/World.h @@ -524,7 +524,7 @@ class World return instance; } - static std::atomic_uint32_t m_worldLoopCounter; + static std::atomic m_worldLoopCounter; WorldSession* FindSession(uint32 id) const; void AddSession(WorldSession* s); diff --git a/src/server/shared/Cryptography/OpenSSLCrypto.cpp b/src/server/shared/Cryptography/OpenSSLCrypto.cpp index d4e06dfd661..6d8d6584e6c 100644 --- a/src/server/shared/Cryptography/OpenSSLCrypto.cpp +++ b/src/server/shared/Cryptography/OpenSSLCrypto.cpp @@ -33,7 +33,7 @@ static void lockingCallback(int mode, int type, const char* /*file*/, int /*line static void threadIdCallback(CRYPTO_THREADID * id) { - CRYPTO_THREADID_set_numeric(id, std::this_thread::get_id().hash()); + CRYPTO_THREADID_set_numeric(id, std::hash()(std::this_thread::get_id())); } void OpenSSLCrypto::threadsSetup() -- cgit v1.2.3