summaryrefslogtreecommitdiffstats
path: root/contrib/libs/icu/common/sharedobject.cpp
diff options
context:
space:
mode:
authorvvvv <[email protected]>2022-02-11 19:00:01 +0300
committervvvv <[email protected]>2022-02-11 19:00:01 +0300
commit4f5398551111a2b05b55de391d5d296bd0a670bf (patch)
tree422aa536507b05260da88883c27d1c9742a292fd /contrib/libs/icu/common/sharedobject.cpp
parent0d99fc6efe15562b8474a702ab18e406ac102cdf (diff)
YQL-13794 remove most of boost & ICU dependency
ref:eae1a1c30940ed737c886518182fd97bd872667d
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