Skip to content

Commit

Permalink
Remove MutexPtrLock (#1712)
Browse files Browse the repository at this point in the history
  • Loading branch information
pepone authored Jan 22, 2024
1 parent 87f679d commit afb4193
Show file tree
Hide file tree
Showing 31 changed files with 127 additions and 646 deletions.
1 change: 0 additions & 1 deletion cpp/include/IceUtil/IceUtil.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
#include <IceUtil/Monitor.h>
#include <IceUtil/MutexProtocol.h>
#include <IceUtil/Mutex.h>
#include <IceUtil/MutexPtrLock.h>
#include <IceUtil/RecMutex.h>
#include <IceUtil/ScopedArray.h>
#include <IceUtil/Shared.h>
Expand Down
78 changes: 0 additions & 78 deletions cpp/include/IceUtil/MutexPtrLock.h

This file was deleted.

77 changes: 0 additions & 77 deletions cpp/include/IceUtil/MutexPtrTryLock.h

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
#include <IceUtil/FileUtil.h>
#include <IceUtil/StringUtil.h>
#include <IceUtil/InputUtil.h>
#include <IceUtil/Mutex.h>

#include <fstream>
#include <mutex>

#if defined(__GLIBC__) || defined(_AIX)
# include <crypt.h>
Expand Down Expand Up @@ -501,29 +501,8 @@ namespace

#if defined(__FreeBSD__) && !defined(__GLIBC__)

//
// FreeBSD crypt is no reentrat we use this global mutex
// to serialize access.
//
IceUtil::Mutex* _staticMutex = 0;

class Init
{
public:

Init()
{
_staticMutex = new IceUtil::Mutex;
}

~Init()
{
delete _staticMutex;
_staticMutex = 0;
}
};

Init init;
// FreeBSD crypt is no reentrat we use this global mutex to serialize access.
mutex staticMutex;

#elif defined(__APPLE__)

Expand Down Expand Up @@ -731,7 +710,7 @@ CryptPermissionsVerifierI::checkPermissions(const string& userId, const string&
data.initialized = 0;
return p->second == crypt_r(password.c_str(), salt.c_str(), &data);
# else
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(_staticMutex);
lock_guard lock(staticMutex);
return p->second == crypt(password.c_str(), salt.c_str());
# endif
#elif defined(__APPLE__) || defined(_WIN32)
Expand Down
2 changes: 0 additions & 2 deletions cpp/src/Ice/CommunicatorI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
#include <Ice/TraceLevels.h>
#include <Ice/Router.h>
#include <Ice/OutgoingAsync.h>
#include <IceUtil/Mutex.h>
#include <IceUtil/MutexPtrLock.h>
#include <Ice/UUID.h>
#ifdef ICE_SWIFT
# include <Ice/ThreadPool.h>
Expand Down
29 changes: 5 additions & 24 deletions cpp/src/Ice/FactoryTableInit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@

#include <Ice/FactoryTableInit.h>
#include <Ice/UserExceptionFactory.h>
#include <IceUtil/Mutex.h>
#include <IceUtil/MutexPtrLock.h>

#include <atomic>

using namespace std;

namespace IceInternal
{
Expand All @@ -21,26 +23,7 @@ ICE_API FactoryTable* factoryTable;
namespace
{

int initCount = 0; // Initialization count
IceUtil::Mutex* initCountMutex = 0;

class Init
{
public:

Init()
{
initCountMutex = new IceUtil::Mutex;
}

~Init()
{
delete initCountMutex;
initCountMutex = 0;
}
};

Init init;
atomic<int> initCount = 0; // Initialization count

}

Expand All @@ -55,7 +38,6 @@ Init init;
//
IceInternal::FactoryTableInit::FactoryTableInit()
{
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(initCountMutex);
if(0 == initCount++)
{
factoryTable = new FactoryTable;
Expand All @@ -68,7 +50,6 @@ IceInternal::FactoryTableInit::FactoryTableInit()
//
IceInternal::FactoryTableInit::~FactoryTableInit()
{
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(initCountMutex);
if(0 == --initCount)
{
delete factoryTable;
Expand Down
1 change: 0 additions & 1 deletion cpp/src/Ice/IPEndpointI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include <Ice/LoggerUtil.h>
#include <Ice/HashUtil.h>
#include <Ice/NetworkProxy.h>
#include <IceUtil/MutexPtrLock.h>

using namespace std;
using namespace Ice;
Expand Down
41 changes: 9 additions & 32 deletions cpp/src/Ice/ImplicitContextI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
#include <Ice/ImplicitContextI.h>
#include <Ice/OutputStream.h>
#include <Ice/Object.h>
#include <IceUtil/Mutex.h>
#include <IceUtil/MutexPtrLock.h>

#include <mutex>

using namespace std;
using namespace Ice;
Expand Down Expand Up @@ -75,7 +75,7 @@ class PerThreadImplicitContext : public ImplicitContextI
//
typedef std::vector<bool> IndexInUse;
static IndexInUse* _indexInUse;
static IceUtil::Mutex* _mutex;
static mutex _mutex;

static long _nextId;
static long _destroyedIds;
Expand Down Expand Up @@ -249,30 +249,7 @@ long PerThreadImplicitContext::_nextId;
long PerThreadImplicitContext::_destroyedIds;
size_t PerThreadImplicitContext::_slotVectors;
PerThreadImplicitContext::IndexInUse* PerThreadImplicitContext::_indexInUse;
IceUtil::Mutex* PerThreadImplicitContext::_mutex = 0;

namespace
{

class Init
{
public:

Init()
{
PerThreadImplicitContext::_mutex = new IceUtil::Mutex;
}

~Init()
{
delete PerThreadImplicitContext::_mutex;
PerThreadImplicitContext::_mutex = 0;
}
};

Init init;

}
mutex PerThreadImplicitContext::_mutex;

# ifdef _WIN32
DWORD PerThreadImplicitContext::_key;
Expand All @@ -282,7 +259,7 @@ pthread_key_t PerThreadImplicitContext::_key;

PerThreadImplicitContext::PerThreadImplicitContext()
{
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(_mutex);
lock_guard lock(_mutex);
_id = _nextId++;
if(_id == 0)
{
Expand Down Expand Up @@ -324,7 +301,7 @@ PerThreadImplicitContext::PerThreadImplicitContext()

PerThreadImplicitContext::~PerThreadImplicitContext()
{
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(_mutex);
lock_guard lock(_mutex);
(*_indexInUse)[_index] = false;

if(find(_indexInUse->begin(), _indexInUse->end(), true) == _indexInUse->end())
Expand Down Expand Up @@ -371,7 +348,7 @@ PerThreadImplicitContext::getThreadContext(bool allocate) const
}

{
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(_mutex);
lock_guard lock(_mutex);
sv = new SlotVector(_index + 1);
_slotVectors++;
}
Expand Down Expand Up @@ -480,7 +457,7 @@ PerThreadImplicitContext::clearThreadContext() const
}

{
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(_mutex);
lock_guard lock(_mutex);
_slotVectors--;
}
# endif
Expand Down Expand Up @@ -647,7 +624,7 @@ extern "C" void iceImplicitContextThreadDestructor(void* v)
delete sv;

{
IceUtilInternal::MutexPtrLock<IceUtil::Mutex> lock(PerThreadImplicitContext::_mutex);
lock_guard lock(PerThreadImplicitContext::_mutex);
PerThreadImplicitContext::_slotVectors--;
PerThreadImplicitContext::tryCleanupKey();
}
Expand Down
2 changes: 0 additions & 2 deletions cpp/src/Ice/IncomingAsync.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@
#include <Ice/Instance.h>
#include <Ice/Properties.h>
#include <Ice/ReplyStatus.h>
#include <IceUtil/Mutex.h>
#include <IceUtil/MutexPtrLock.h>

using namespace std;
using namespace Ice;
Expand Down
Loading

0 comments on commit afb4193

Please sign in to comment.