diff options
author | Jose <jose@zeroc.com> | 2016-09-30 19:08:30 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-09-30 19:08:30 +0200 |
commit | bdafd7aac901927ff3b6222b3deed08fd88ec627 (patch) | |
tree | 15289ecc2aa7c2828d600e9262581c89cb5d5bf7 /js | |
parent | Fixed ICE-7394 - php test failures on Windows (diff) | |
download | ice-bdafd7aac901927ff3b6222b3deed08fd88ec627.tar.bz2 ice-bdafd7aac901927ff3b6222b3deed08fd88ec627.tar.xz ice-bdafd7aac901927ff3b6222b3deed08fd88ec627.zip |
ICE-7398 - Browser Ice/throughput hang
Diffstat (limited to 'js')
-rw-r--r-- | js/src/Ice/browser/WSTransceiver.js | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/js/src/Ice/browser/WSTransceiver.js b/js/src/Ice/browser/WSTransceiver.js index 32a3661ecf6..f19b13ac2f6 100644 --- a/js/src/Ice/browser/WSTransceiver.js +++ b/js/src/Ice/browser/WSTransceiver.js @@ -183,6 +183,19 @@ var WSTransceiver = Ice.Class({ } Debug.assert(this._fd); + var transceiver = this; + var cb = function() + { + if(transceiver._fd && transceiver._fd.bufferedAmount + packetSize <= transceiver._maxSendPacketSize) + { + transceiver._bytesWrittenCallback(0, 0); + } + else + { + Timer.setTimeout(cb, transceiver.writeReadyTimeout()); + } + }; + var i = byteBuffer.position; while(true) { @@ -195,15 +208,7 @@ var WSTransceiver = Ice.Class({ Debug.assert(packetSize > 0); if(this._fd.bufferedAmount + packetSize > this._maxSendPacketSize) { - var transceiver = this; - Timer.setTimeout(function() - { - if(transceiver._fd && transceiver._fd.bufferedAmount + packetSize <= transceiver._maxSendPacketSize) - { - transceiver._bytesWrittenCallback(0, 0); - } - }, - this.writeReadyTimeout()); + Timer.setTimeout(cb, this.writeReadyTimeout()); return false; } this._writeReadyTimeout = 0; |