!341 bug #ICPDU7 Slot中的conditionStack从默认的浅拷贝改为自定义拷贝行为,实现子线程继承父线程的栈帧,但又线程独享conditionStack

Merge pull request !341 from 不许对我狗叫丶/issues/ICPDU7
This commit is contained in:
铂赛东
2025-08-18 06:25:33 +00:00
committed by Gitee

View File

@@ -91,8 +91,23 @@ public class Slot {
protected ConcurrentHashMap<String, Object> metaDataMap = new ConcurrentHashMap<>();
private List<Tuple> contextBeanList;
private static final TransmittableThreadLocal<Deque<Condition>> conditionStack = TransmittableThreadLocal.withInitial(ConcurrentLinkedDeque::new);
private static final TransmittableThreadLocal<Deque<Condition>> conditionStack = new TransmittableThreadLocal<Deque<Condition>>() {
@Override
protected Deque<Condition> initialValue() {
return new ConcurrentLinkedDeque<>();
}
@Override
public Deque<Condition> copy(Deque<Condition> parentValue) {
return new ConcurrentLinkedDeque<>(parentValue);
}
@Override
protected Deque<Condition> childValue(Deque<Condition> parentValue) {
return copy(parentValue);
}
};
private Boolean routeResult;