Basic mutability framework

This commit is contained in:
Dynamitos
2022-01-12 14:40:26 +01:00
parent b2718dde70
commit 6d48267ec2
72 changed files with 1781 additions and 1341 deletions
+6 -2
View File
@@ -49,7 +49,7 @@ public:
~RefObject()
{
{
std::unique_lock lock(registeredObjectsLock);
std::scoped_lock lock(registeredObjectsLock);
registeredObjects.erase(handle);
}
// #pragma warning( disable: 4150)
@@ -114,7 +114,7 @@ public:
}
RefPtr(T *ptr, Deleter deleter = Deleter())
{
std::unique_lock l(registeredObjectsLock);
std::scoped_lock l(registeredObjectsLock);
auto registeredObj = registeredObjects.find(ptr);
// get here for thread safetly
auto registeredEnd = registeredObjects.end();
@@ -249,6 +249,10 @@ public:
{
return object->getHandle();
}
RefPtr<T, Deleter> clone()
{
return RefPtr<T, Deleter>(new T(*getHandle()));
}
private:
RefObject<T, Deleter> *object;