3
0
mirror of https://github.com/Qortal/altcoinj.git synced 2025-02-12 18:25: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,
EventListenerInvoker<E> invoker) {
for (int i = 0; i < listeners.size(); i++) {
E l = listeners.get(i);
synchronized (l) {
invoker.invoke(l);
}
if (listeners.get(i) != l) {
i--; // Listener removed itself.
synchronized (listeners) {
for (int i = 0; i < listeners.size(); i++) {
E l = listeners.get(i);
synchronized (l) {
invoker.invoke(l);
}
if (listeners.get(i) != l) {
i--; // Listener removed itself.
}
}
}
}