aboutsummaryrefslogtreecommitdiff
path: root/impl/src/main/java/io/perfmark/impl/MostlyThreadLocalMarkHolder.java
diff options
context:
space:
mode:
authorOleg Shaldybin <olegsh@google.com>2023-06-16 02:02:13 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-06-16 02:02:13 +0000
commit1488d1d1de4862d56164641ff2db3d9bed345cb6 (patch)
tree248e54a31421fdcdebfaf7e83aace32f7bc8a8ad /impl/src/main/java/io/perfmark/impl/MostlyThreadLocalMarkHolder.java
parent68ac043b69bd19a8c64348357861b1df81c627b3 (diff)
parent4a4b713b448fa7874945e616ea82dc77062cdd78 (diff)
downloadperfmark-1488d1d1de4862d56164641ff2db3d9bed345cb6.tar.gz
Import perfmark v-0.26 am: 9d6c9c0f44 am: a14e499d34 am: e0ee6365ff am: 4a4b713b44
Original change: https://android-review.googlesource.com/c/platform/external/perfmark/+/2627042 Change-Id: I67444728877d1d6f1062b5453c0211bc53912749 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'impl/src/main/java/io/perfmark/impl/MostlyThreadLocalMarkHolder.java')
-rw-r--r--impl/src/main/java/io/perfmark/impl/MostlyThreadLocalMarkHolder.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/impl/src/main/java/io/perfmark/impl/MostlyThreadLocalMarkHolder.java b/impl/src/main/java/io/perfmark/impl/MostlyThreadLocalMarkHolder.java
new file mode 100644
index 0000000..a17c8c0
--- /dev/null
+++ b/impl/src/main/java/io/perfmark/impl/MostlyThreadLocalMarkHolder.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2022 Carl Mastrangelo
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.perfmark.impl;
+
+final class MostlyThreadLocalMarkHolder extends LocalMarkHolder {
+
+ private static final MostlyThreadLocal localMarkHolder = new MostlyThreadLocal();
+
+ MostlyThreadLocalMarkHolder() {}
+
+ @Override
+ public MarkHolder acquire() {
+ return localMarkHolder.get();
+ }
+
+ @Override
+ public void release(MarkHolder markHolder) {}
+
+ @Override
+ public void clear() {
+ localMarkHolder.remove();
+ }
+}