Skip to content

Commit c3ad90d

Browse files
committed
• Using ConcurrentHashMap for multi-threaded environment
• Making clearAcks() public for clearing acknowledgement when needed
1 parent 6ea9c15 commit c3ad90d

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/main/java/io/socket/client/Socket.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.json.JSONObject;
1010

1111
import java.util.*;
12+
import java.util.concurrent.ConcurrentHashMap;
1213
import java.util.concurrent.ConcurrentLinkedQueue;
1314
import java.util.logging.Level;
1415
import java.util.logging.Logger;
@@ -59,7 +60,7 @@ public class Socket extends Emitter {
5960
private String nsp;
6061
private Manager io;
6162
private Map<String, String> auth;
62-
private Map<Integer, Ack> acks = new HashMap<>();
63+
private Map<Integer, Ack> acks = new ConcurrentHashMap<>();
6364
private Queue<On.Handle> subs;
6465
private final Queue<List<Object>> receiveBuffer = new ConcurrentLinkedQueue<>();
6566
private final Queue<Packet<JSONArray>> sendBuffer = new ConcurrentLinkedQueue<>();
@@ -283,14 +284,13 @@ private void onclose(String reason) {
283284
this.connected = false;
284285
this.id = null;
285286
super.emit(EVENT_DISCONNECT, reason);
286-
this.clearAcks();
287287
}
288288

289289
/**
290290
* Clears the acknowledgement handlers upon disconnection, since the client will never receive an acknowledgement from
291291
* the server.
292292
*/
293-
private void clearAcks() {
293+
public void clearAcks() {
294294
for (Ack ack : this.acks.values()) {
295295
if (ack instanceof AckWithTimeout) {
296296
((AckWithTimeout) ack).onTimeout();

0 commit comments

Comments
 (0)