mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
don't leak MessageBus and all its listeners through ThreadLocal
This commit is contained in:
@@ -34,12 +34,7 @@ public class MessageBusConnectionImpl implements MessageBusConnection {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.util.messages.impl.MessageBusConnectionImpl");
|
||||
|
||||
private final MessageBusImpl myBus;
|
||||
private final ThreadLocal<Queue<Message>> myPendingMessages = new ThreadLocal<Queue<Message>>() {
|
||||
@Override
|
||||
protected Queue<Message> initialValue() {
|
||||
return new ConcurrentLinkedQueue<Message>();
|
||||
}
|
||||
};
|
||||
private final ThreadLocal<Queue<Message>> myPendingMessages = new QueueThreadLocal();
|
||||
private MessageHandler myDefaultHandler;
|
||||
private final Map<Topic, Object> mySubscriptions = new HashMap<Topic, Object>();
|
||||
|
||||
@@ -129,4 +124,11 @@ public class MessageBusConnectionImpl implements MessageBusConnection {
|
||||
public String toString() {
|
||||
return mySubscriptions.keySet().toString();
|
||||
}
|
||||
|
||||
private static class QueueThreadLocal extends ThreadLocal<Queue<Message>> {
|
||||
@Override
|
||||
protected Queue<Message> initialValue() {
|
||||
return new ConcurrentLinkedQueue<Message>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user