summaryrefslogtreecommitdiffstats
path: root/contrib/libs/icu/common/sharedobject.cpp
diff options
context:
space:
mode:
authorDaniil Cherednik <[email protected]>2022-06-24 13:08:23 +0300
committerDaniil Cherednik <[email protected]>2022-06-24 13:08:23 +0300
commit067fd14417000b3601483f660fe9e27c3b47f0b5 (patch)
treeeb4fc96bcae1331d15432f6555b003185bc75848 /contrib/libs/icu/common/sharedobject.cpp
parentece86e83e77dcf3d9e757517d3d16f707272a4c7 (diff)
REVERT: r9621717 (disable pg_wrapper for OSS) YQ-1154
ref:d888564254e64ea675383c26661ff5332bf406f5
Diffstat (limited to 'contrib/libs/icu/common/sharedobject.cpp')
-rw-r--r--contrib/libs/icu/common/sharedobject.cpp62
1 files changed, 0 insertions, 62 deletions
diff --git a/contrib/libs/icu/common/sharedobject.cpp b/contrib/libs/icu/common/sharedobject.cpp
deleted file mode 100644
index 6eeca8605f0..00000000000
--- a/contrib/libs/icu/common/sharedobject.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// © 2016 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-/*
-******************************************************************************
-* Copyright (C) 2015, International Business Machines
-* Corporation and others. All Rights Reserved.
-******************************************************************************
-* sharedobject.cpp
-*/
-#include "sharedobject.h"
-#include "mutex.h"
-#include "uassert.h"
-#include "umutex.h"
-#include "unifiedcache.h"
-
-U_NAMESPACE_BEGIN
-
-SharedObject::~SharedObject() {}
-
-UnifiedCacheBase::~UnifiedCacheBase() {}
-
-void
-SharedObject::addRef() const {
- umtx_atomic_inc(&hardRefCount);
-}
-
-// removeRef Decrement the reference count and delete if it is zero.
-// Note that SharedObjects with a non-null cachePtr are owned by the
-// unified cache, and the cache will be responsible for the actual deletion.
-// The deletion could be as soon as immediately following the
-// update to the reference count, if another thread is running
-// a cache eviction cycle concurrently.
-// NO ACCESS TO *this PERMITTED AFTER REFERENCE COUNT == 0 for cached objects.
-// THE OBJECT MAY ALREADY BE GONE.
-void
-SharedObject::removeRef() const {
- const UnifiedCacheBase *cache = this->cachePtr;
- int32_t updatedRefCount = umtx_atomic_dec(&hardRefCount);
- U_ASSERT(updatedRefCount >= 0);
- if (updatedRefCount == 0) {
- if (cache) {
- cache->handleUnreferencedObject();
- } else {
- delete this;
- }
- }
-}
-
-
-int32_t
-SharedObject::getRefCount() const {
- return umtx_loadAcquire(hardRefCount);
-}
-
-void
-SharedObject::deleteIfZeroRefCount() const {
- if (this->cachePtr == nullptr && getRefCount() == 0) {
- delete this;
- }
-}
-
-U_NAMESPACE_END