fix: create TaskTracker failed causes HashMap to deadlock

This commit is contained in:
tjq 2023-01-27 13:13:56 +08:00
parent fb2046649e
commit a25eac67c7

View File

@ -21,8 +21,11 @@ public class LightTaskTrackerManager {
return INSTANCE_ID_2_TASK_TRACKER.get(instanceId);
}
public static LightTaskTracker removeTaskTracker(Long instanceId) {
return INSTANCE_ID_2_TASK_TRACKER.remove(instanceId);
public static void removeTaskTracker(Long instanceId) {
// 忽略印度的 IDE 警告这个判断非常有用不加这个判断会导致如果创建 TT先执行 computeIfAbsent 正在将TT添加到 HashMap 时报错TT 主动调用 destroy 销毁 HashMap移除该 TT时死锁
if (INSTANCE_ID_2_TASK_TRACKER.containsKey(instanceId)) {
INSTANCE_ID_2_TASK_TRACKER.remove(instanceId);
}
}
public static void atomicCreateTaskTracker(Long instanceId, Function<Long, LightTaskTracker> creator) {