summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2016-09-30 19:08:30 +0200
committerJose <jose@zeroc.com>2016-09-30 19:08:30 +0200
commitbdafd7aac901927ff3b6222b3deed08fd88ec627 (patch)
tree15289ecc2aa7c2828d600e9262581c89cb5d5bf7
parentFixed ICE-7394 - php test failures on Windows (diff)
downloadice-bdafd7aac901927ff3b6222b3deed08fd88ec627.tar.bz2
ice-bdafd7aac901927ff3b6222b3deed08fd88ec627.tar.xz
ice-bdafd7aac901927ff3b6222b3deed08fd88ec627.zip
ICE-7398 - Browser Ice/throughput hang
-rw-r--r--js/src/Ice/browser/WSTransceiver.js23
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;