fix: bug of deadlock

This commit is contained in:
tjq 2023-01-28 10:13:28 +08:00
parent ccbe11ed0e
commit 5d9ce2daf0

View File

@ -21,8 +21,11 @@ public class LightTaskTrackerManager {
return INSTANCE_ID_2_TASK_TRACKER.get(instanceId); return INSTANCE_ID_2_TASK_TRACKER.get(instanceId);
} }
public static LightTaskTracker removeTaskTracker(Long instanceId) { public static void removeTaskTracker(Long instanceId) {
return INSTANCE_ID_2_TASK_TRACKER.remove(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) { public static void atomicCreateTaskTracker(Long instanceId, Function<Long, LightTaskTracker> creator) {