3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-13 10:45:51 +00:00

Synchronize on event listeners in EventListenerInvoker.

This commit is contained in:
Mike Hearn 2012-03-02 15:08:36 +01:00
parent 001afa9ae2
commit b25446271a

View File

@ -39,13 +39,15 @@ public abstract class EventListenerInvoker<E> {
public static <E> void invoke(List<E> listeners, public static <E> void invoke(List<E> listeners,
EventListenerInvoker<E> invoker) { EventListenerInvoker<E> invoker) {
for (int i = 0; i < listeners.size(); i++) { synchronized (listeners) {
E l = listeners.get(i); for (int i = 0; i < listeners.size(); i++) {
synchronized (l) { E l = listeners.get(i);
invoker.invoke(l); synchronized (l) {
} invoker.invoke(l);
if (listeners.get(i) != l) { }
i--; // Listener removed itself. if (listeners.get(i) != l) {
i--; // Listener removed itself.
}
} }
} }
} }