Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
阿啄debugIT
transmittable-thread-local
提交
436b8e24
T
transmittable-thread-local
项目概览
阿啄debugIT
/
transmittable-thread-local
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
transmittable-thread-local
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
436b8e24
编写于
10月 31, 2018
作者:
oldratlee
🔥
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add TtlEnhanced tag interface
上级
dab7ea93
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
26 addition
and
15 deletion
+26
-15
src/main/java/com/alibaba/ttl/TtlCallable.java
src/main/java/com/alibaba/ttl/TtlCallable.java
+2
-2
src/main/java/com/alibaba/ttl/TtlEnhanced.java
src/main/java/com/alibaba/ttl/TtlEnhanced.java
+7
-0
src/main/java/com/alibaba/ttl/TtlRecursiveAction.java
src/main/java/com/alibaba/ttl/TtlRecursiveAction.java
+1
-1
src/main/java/com/alibaba/ttl/TtlRecursiveTask.java
src/main/java/com/alibaba/ttl/TtlRecursiveTask.java
+1
-1
src/main/java/com/alibaba/ttl/TtlRunnable.java
src/main/java/com/alibaba/ttl/TtlRunnable.java
+2
-2
src/main/java/com/alibaba/ttl/TtlTimerTask.java
src/main/java/com/alibaba/ttl/TtlTimerTask.java
+2
-2
src/main/java/com/alibaba/ttl/threadpool/ExecutorServiceTtlWrapper.java
...com/alibaba/ttl/threadpool/ExecutorServiceTtlWrapper.java
+2
-1
src/main/java/com/alibaba/ttl/threadpool/ExecutorTtlWrapper.java
...n/java/com/alibaba/ttl/threadpool/ExecutorTtlWrapper.java
+2
-1
src/main/java/com/alibaba/ttl/threadpool/ScheduledExecutorServiceTtlWrapper.java
...ba/ttl/threadpool/ScheduledExecutorServiceTtlWrapper.java
+2
-1
src/main/java/com/alibaba/ttl/threadpool/TtlExecutors.java
src/main/java/com/alibaba/ttl/threadpool/TtlExecutors.java
+5
-4
未找到文件。
src/main/java/com/alibaba/ttl/TtlCallable.java
浏览文件 @
436b8e24
...
...
@@ -28,7 +28,7 @@ import static com.alibaba.ttl.TransmittableThreadLocal.Transmitter.*;
* @see java.util.concurrent.ExecutorCompletionService
* @since 0.9.0
*/
public
final
class
TtlCallable
<
V
>
implements
Callable
<
V
>
{
public
final
class
TtlCallable
<
V
>
implements
Callable
<
V
>
,
TtlEnhanced
{
private
final
AtomicReference
<
Object
>
capturedRef
;
private
final
Callable
<
V
>
callable
;
private
final
boolean
releaseTtlValueReferenceAfterCall
;
...
...
@@ -123,7 +123,7 @@ public final class TtlCallable<V> implements Callable<V> {
public
static
<
T
>
TtlCallable
<
T
>
get
(
@Nullable
Callable
<
T
>
callable
,
boolean
releaseTtlValueReferenceAfterCall
,
boolean
idempotent
)
{
if
(
null
==
callable
)
return
null
;
if
(
callable
instanceof
Ttl
Callable
)
{
if
(
callable
instanceof
Ttl
Enhanced
)
{
// avoid redundant decoration, and ensure idempotency
if
(
idempotent
)
return
(
TtlCallable
<
T
>)
callable
;
else
throw
new
IllegalStateException
(
"Already TtlCallable!"
);
...
...
src/main/java/com/alibaba/ttl/TtlEnhanced.java
0 → 100644
浏览文件 @
436b8e24
package
com.alibaba.ttl
;
/**
* a Ttl marker/tag interface, for ttl enhanced class, for example {@code TTL wrapper}.
*/
public
interface
TtlEnhanced
{
}
src/main/java/com/alibaba/ttl/TtlRecursiveAction.java
浏览文件 @
436b8e24
...
...
@@ -11,7 +11,7 @@ import static com.alibaba.ttl.TransmittableThreadLocal.Transmitter.*;
* @see java.util.concurrent.RecursiveAction
* @since 2.4.0
*/
public
abstract
class
TtlRecursiveAction
extends
ForkJoinTask
<
Void
>
{
public
abstract
class
TtlRecursiveAction
extends
ForkJoinTask
<
Void
>
implements
TtlEnhanced
{
private
static
final
long
serialVersionUID
=
-
5753568484583412377L
;
...
...
src/main/java/com/alibaba/ttl/TtlRecursiveTask.java
浏览文件 @
436b8e24
...
...
@@ -11,7 +11,7 @@ import static com.alibaba.ttl.TransmittableThreadLocal.Transmitter.*;
* @see java.util.concurrent.RecursiveTask
* @since 2.4.0
*/
public
abstract
class
TtlRecursiveTask
<
V
>
extends
ForkJoinTask
<
V
>
{
public
abstract
class
TtlRecursiveTask
<
V
>
extends
ForkJoinTask
<
V
>
implements
TtlEnhanced
{
private
static
final
long
serialVersionUID
=
1814679366926362436L
;
...
...
src/main/java/com/alibaba/ttl/TtlRunnable.java
浏览文件 @
436b8e24
...
...
@@ -25,7 +25,7 @@ import static com.alibaba.ttl.TransmittableThreadLocal.Transmitter.*;
* @see java.util.concurrent.Executors
* @since 0.9.0
*/
public
final
class
TtlRunnable
implements
Runnable
{
public
final
class
TtlRunnable
implements
Runnable
,
TtlEnhanced
{
private
final
AtomicReference
<
Object
>
capturedRef
;
private
final
Runnable
runnable
;
private
final
boolean
releaseTtlValueReferenceAfterRun
;
...
...
@@ -122,7 +122,7 @@ public final class TtlRunnable implements Runnable {
public
static
TtlRunnable
get
(
@Nullable
Runnable
runnable
,
boolean
releaseTtlValueReferenceAfterRun
,
boolean
idempotent
)
{
if
(
null
==
runnable
)
return
null
;
if
(
runnable
instanceof
Ttl
Runnable
)
{
if
(
runnable
instanceof
Ttl
Enhanced
)
{
// avoid redundant decoration, and ensure idempotency
if
(
idempotent
)
return
(
TtlRunnable
)
runnable
;
else
throw
new
IllegalStateException
(
"Already TtlRunnable!"
);
...
...
src/main/java/com/alibaba/ttl/TtlTimerTask.java
浏览文件 @
436b8e24
...
...
@@ -25,7 +25,7 @@ import static com.alibaba.ttl.TransmittableThreadLocal.Transmitter.*;
* @deprecated Use {@link TtlRunnable}, {@link java.util.concurrent.ScheduledExecutorService} instead of {@link java.util.Timer}, {@link java.util.TimerTask}.
*/
@Deprecated
public
final
class
TtlTimerTask
extends
TimerTask
{
public
final
class
TtlTimerTask
extends
TimerTask
implements
TtlEnhanced
{
private
final
AtomicReference
<
Object
>
capturedRef
;
private
final
TimerTask
timerTask
;
private
final
boolean
releaseTtlValueReferenceAfterRun
;
...
...
@@ -121,7 +121,7 @@ public final class TtlTimerTask extends TimerTask {
public
static
TtlTimerTask
get
(
@Nullable
TimerTask
timerTask
,
boolean
releaseTtlValueReferenceAfterRun
,
boolean
idempotent
)
{
if
(
null
==
timerTask
)
return
null
;
if
(
timerTask
instanceof
Ttl
TimerTask
)
{
if
(
timerTask
instanceof
Ttl
Enhanced
)
{
// avoid redundant decoration, and ensure idempotency
if
(
idempotent
)
return
(
TtlTimerTask
)
timerTask
;
else
throw
new
IllegalStateException
(
"Already TtlTimerTask!"
);
...
...
src/main/java/com/alibaba/ttl/threadpool/ExecutorServiceTtlWrapper.java
浏览文件 @
436b8e24
...
...
@@ -2,6 +2,7 @@ package com.alibaba.ttl.threadpool;
import
com.alibaba.ttl.TransmittableThreadLocal
;
import
com.alibaba.ttl.TtlCallable
;
import
com.alibaba.ttl.TtlEnhanced
;
import
com.alibaba.ttl.TtlRunnable
;
import
javax.annotation.Nonnull
;
...
...
@@ -17,7 +18,7 @@ import java.util.concurrent.*;
* @author Jerry Lee (oldratlee at gmail dot com)
* @since 0.9.0
*/
class
ExecutorServiceTtlWrapper
extends
ExecutorTtlWrapper
implements
ExecutorService
{
class
ExecutorServiceTtlWrapper
extends
ExecutorTtlWrapper
implements
ExecutorService
,
TtlEnhanced
{
private
final
ExecutorService
executorService
;
ExecutorServiceTtlWrapper
(
@Nonnull
ExecutorService
executorService
)
{
...
...
src/main/java/com/alibaba/ttl/threadpool/ExecutorTtlWrapper.java
浏览文件 @
436b8e24
...
...
@@ -2,6 +2,7 @@ package com.alibaba.ttl.threadpool;
import
com.alibaba.ttl.TransmittableThreadLocal
;
import
com.alibaba.ttl.TtlRunnable
;
import
com.alibaba.ttl.TtlEnhanced
;
import
javax.annotation.Nonnull
;
import
java.util.concurrent.Executor
;
...
...
@@ -14,7 +15,7 @@ import java.util.concurrent.Executor;
* @author Jerry Lee (oldratlee at gmail dot com)
* @since 0.9.0
*/
class
ExecutorTtlWrapper
implements
Executor
{
class
ExecutorTtlWrapper
implements
Executor
,
TtlEnhanced
{
private
final
Executor
executor
;
ExecutorTtlWrapper
(
@Nonnull
Executor
executor
)
{
...
...
src/main/java/com/alibaba/ttl/threadpool/ScheduledExecutorServiceTtlWrapper.java
浏览文件 @
436b8e24
...
...
@@ -2,6 +2,7 @@ package com.alibaba.ttl.threadpool;
import
com.alibaba.ttl.TransmittableThreadLocal
;
import
com.alibaba.ttl.TtlCallable
;
import
com.alibaba.ttl.TtlEnhanced
;
import
com.alibaba.ttl.TtlRunnable
;
import
javax.annotation.Nonnull
;
...
...
@@ -15,7 +16,7 @@ import java.util.concurrent.*;
* @author Jerry Lee (oldratlee at gmail dot com)
* @since 0.9.0
*/
class
ScheduledExecutorServiceTtlWrapper
extends
ExecutorServiceTtlWrapper
implements
ScheduledExecutorService
{
class
ScheduledExecutorServiceTtlWrapper
extends
ExecutorServiceTtlWrapper
implements
ScheduledExecutorService
,
TtlEnhanced
{
final
ScheduledExecutorService
scheduledExecutorService
;
public
ScheduledExecutorServiceTtlWrapper
(
@Nonnull
ScheduledExecutorService
scheduledExecutorService
)
{
...
...
src/main/java/com/alibaba/ttl/threadpool/TtlExecutors.java
浏览文件 @
436b8e24
package
com.alibaba.ttl.threadpool
;
import
com.alibaba.ttl.TransmittableThreadLocal
;
import
com.alibaba.ttl.TtlEnhanced
;
import
com.alibaba.ttl.threadpool.agent.TtlAgent
;
import
javax.annotation.Nullable
;
...
...
@@ -34,7 +35,7 @@ public final class TtlExecutors {
*/
@Nullable
public
static
Executor
getTtlExecutor
(
@Nullable
Executor
executor
)
{
if
(
TtlAgent
.
isTtlAgentLoaded
()
||
null
==
executor
||
executor
instanceof
ExecutorTtlWrapper
)
{
if
(
TtlAgent
.
isTtlAgentLoaded
()
||
null
==
executor
||
executor
instanceof
TtlEnhanced
)
{
return
executor
;
}
return
new
ExecutorTtlWrapper
(
executor
);
...
...
@@ -47,7 +48,7 @@ public final class TtlExecutors {
*/
@Nullable
public
static
ExecutorService
getTtlExecutorService
(
@Nullable
ExecutorService
executorService
)
{
if
(
TtlAgent
.
isTtlAgentLoaded
()
||
executorService
==
null
||
executorService
instanceof
ExecutorServiceTtlWrapper
)
{
if
(
TtlAgent
.
isTtlAgentLoaded
()
||
executorService
==
null
||
executorService
instanceof
TtlEnhanced
)
{
return
executorService
;
}
return
new
ExecutorServiceTtlWrapper
(
executorService
);
...
...
@@ -60,7 +61,7 @@ public final class TtlExecutors {
*/
@Nullable
public
static
ScheduledExecutorService
getTtlScheduledExecutorService
(
@Nullable
ScheduledExecutorService
scheduledExecutorService
)
{
if
(
TtlAgent
.
isTtlAgentLoaded
()
||
scheduledExecutorService
==
null
||
scheduledExecutorService
instanceof
ScheduledExecutorServiceTtlWrapper
)
{
if
(
TtlAgent
.
isTtlAgentLoaded
()
||
scheduledExecutorService
==
null
||
scheduledExecutorService
instanceof
TtlEnhanced
)
{
return
scheduledExecutorService
;
}
return
new
ScheduledExecutorServiceTtlWrapper
(
scheduledExecutorService
);
...
...
@@ -82,7 +83,7 @@ public final class TtlExecutors {
* @since 2.8.0
*/
public
static
<
T
extends
Executor
>
boolean
isTtlWrapper
(
@Nullable
T
executor
)
{
return
executor
instanceof
ExecutorTtlWrapper
;
return
executor
instanceof
TtlEnhanced
;
}
/**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录