You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2022/02/23 03:26:01 UTC
[dubbo] branch 3.0 updated: [3.0] InternalThreadLocal extend ThreadLocal for compatible (#9710)
This is an automated email from the ASF dual-hosted git repository.
liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new c44200b [3.0] InternalThreadLocal extend ThreadLocal for compatible (#9710)
c44200b is described below
commit c44200b3e0c8379d9614d6804d74f92c101fdae6
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Wed Feb 23 11:25:45 2022 +0800
[3.0] InternalThreadLocal extend ThreadLocal for compatible (#9710)
---
.../org/apache/dubbo/common/threadlocal/InternalThreadLocal.java | 8 ++++++--
.../apache/dubbo/common/threadlocal/InternalThreadLocalTest.java | 2 +-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java b/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java
index 13c7463..d0783c8 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/threadlocal/InternalThreadLocal.java
@@ -31,7 +31,7 @@ import java.util.Set;
* <p></p>
* This design is learning from {@see io.netty.util.concurrent.FastThreadLocal} which is in Netty.
*/
-public class InternalThreadLocal<V> {
+public class InternalThreadLocal<V> extends ThreadLocal<V> {
private static final int VARIABLES_TO_REMOVE_INDEX = InternalThreadLocalMap.nextVariableIndex();
@@ -115,6 +115,7 @@ public class InternalThreadLocal<V> {
* Returns the current value for the current thread
*/
@SuppressWarnings("unchecked")
+ @Override
public final V get() {
InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.get();
Object v = threadLocalMap.indexedVariable(index);
@@ -141,6 +142,7 @@ public class InternalThreadLocal<V> {
/**
* Sets the value for the current thread.
*/
+ @Override
public final void set(V value) {
if (value == null || value == InternalThreadLocalMap.UNSET) {
remove();
@@ -156,6 +158,7 @@ public class InternalThreadLocal<V> {
* Sets the value to uninitialized; a proceeding call to get() will trigger a call to initialValue().
*/
@SuppressWarnings("unchecked")
+ @Override
public final void remove() {
remove(InternalThreadLocalMap.getIfSet());
}
@@ -186,7 +189,8 @@ public class InternalThreadLocal<V> {
/**
* Returns the initial value for this thread-local variable.
*/
- protected V initialValue() throws Exception {
+ @Override
+ protected V initialValue() {
return null;
}
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java
index 4f243c4..002354a 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/threadlocal/InternalThreadLocalTest.java
@@ -54,7 +54,7 @@ public class InternalThreadLocalTest {
final InternalThreadLocal<Integer> internalThreadLocal = new InternalThreadLocal<Integer>() {
@Override
- protected Integer initialValue() throws Exception {
+ protected Integer initialValue() {
Integer v = index.getAndIncrement();
System.out.println("thread : " + Thread.currentThread().getName() + " init value : " + v);
return v;