]> git.wh0rd.org - chrome-ext/music-player-client.git/blobdiff - js/tcp-client.js
tcp-client: do not create multiple read pollers
[chrome-ext/music-player-client.git] / js / tcp-client.js
index ed3b598126db85ed7b51d930337771921bc58fe1..55bdaafa658d55ed7e798076542fdb8dfb45a206 100644 (file)
@@ -42,6 +42,7 @@ Author: Boris Smus (smus@chromium.org)
     // Socket.
     this.socketId = null;
     this.isConnected = false;
+    this.pollerId = null;
 
     log('initialized tcp client');
   }
@@ -92,6 +93,8 @@ Author: Boris Smus (smus@chromium.org)
    */
   TcpClient.prototype.disconnect = function() {
     socket.disconnect(this.socketId);
+    clearInterval(this.pollerId);
+    this.pollerId = null;
     this.isConnected = false;
   };
 
@@ -124,7 +127,8 @@ Author: Boris Smus (smus@chromium.org)
    */
   TcpClient.prototype._onConnectComplete = function(resultCode) {
     // Start polling for reads.
-    setInterval(this.poll.bind(this), 500);
+    clearInterval(this.pollerId);
+    this.pollerId = setInterval(this.poll.bind(this), 500);
 
     if (this.callbacks.connect) {
       log('connect complete');