PY-13927 Debugger: Timeout waiting for response on 113 when viewing watches

Getting the next sequence number was not synchronized. Sometimes it returned the same value for different commands and lost some responses.
This commit is contained in:
Elizaveta Shashkova
2015-01-21 18:55:26 +03:00
parent d5ba847c86
commit d5e3a77cb0
@@ -55,6 +55,7 @@ public class RemoteDebugger implements ProcessDebugger {
private Socket mySocket;
private volatile boolean myConnected = false;
private int mySequence = -1;
private final Object mySequenceObject = new Object(); // for synchronization on mySequence
private final Map<String, PyThreadInfo> myThreads = new ConcurrentHashMap<String, PyThreadInfo>();
private final Map<Integer, ProtocolFrame> myResponseQueue = new HashMap<Integer, ProtocolFrame>();
private final TempVarsHolder myTempVars = new TempVarsHolder();
@@ -285,8 +286,10 @@ public class RemoteDebugger implements ProcessDebugger {
}
int getNextSequence() {
mySequence += 2;
return mySequence;
synchronized (mySequenceObject) {
mySequence += 2;
return mySequence;
}
}
void placeResponse(final int sequence, final ProtocolFrame response) {