diff --git a/src/main/java/com/nhn/pinpoint/rpc/client/PinpointSocket.java b/src/main/java/com/nhn/pinpoint/rpc/client/PinpointSocket.java index c614e6761..b2c646d53 100644 --- a/src/main/java/com/nhn/pinpoint/rpc/client/PinpointSocket.java +++ b/src/main/java/com/nhn/pinpoint/rpc/client/PinpointSocket.java @@ -2,6 +2,7 @@ package com.nhn.pinpoint.rpc.client; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -26,7 +27,7 @@ public class PinpointSocket { private volatile boolean closed; - private List reconnectEventListeners = new ArrayList(); + private List reconnectEventListeners = new CopyOnWriteArrayList(); public PinpointSocket() { this(new ReconnectStateSocketHandler()); @@ -81,28 +82,19 @@ public class PinpointSocket { return false; } - synchronized (this) { - return this.reconnectEventListeners.add(eventListener); - } + return this.reconnectEventListeners.add(eventListener); } public boolean removePinpointSocketReconnectEventListener(PinpointSocketReconnectEventListener eventListener) { if (eventListener == null) { return false; } - synchronized (this) { - return this.reconnectEventListeners.remove(eventListener); - } + + return this.reconnectEventListeners.remove(eventListener); } private List getPinpointSocketReconnectEventListener() { - List result = new ArrayList(); - synchronized (this) { - for (PinpointSocketReconnectEventListener eventListener : this.reconnectEventListeners) { - result.add(eventListener); - } - } - + List result = new ArrayList(reconnectEventListeners); return result; }