[tor-commits] [meek/master] Disable read/write deadlines when done reading or writing.
dcf at torproject.org
dcf at torproject.org
Fri Apr 11 15:33:28 UTC 2014
commit 7c84d72e5b92e710ef560f493d836d722a65e4bb
Author: David Fifield <david at bamsoftware.com>
Date: Thu Apr 10 12:01:01 2014 -0700
Disable read/write deadlines when done reading or writing.
I was getting long hangs during bootstrapping on Windows 8 in a VM. It
seemed to happen most often right after receiving a payload of maximum
size, which mostly happens only during bootstrapping. Increasing the
timeout to 10 s made it go away. Even though we reset the timeout before
every read and write operation, my guess is there's some implicit read
or write that was reusing the timeout of the most recent operation. When
payloads were big, they took a little more time to process, and failed.
---
firefox/components/main.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/firefox/components/main.js b/firefox/components/main.js
index cff6ef0..2890b37 100644
--- a/firefox/components/main.js
+++ b/firefox/components/main.js
@@ -184,6 +184,7 @@ MeekHTTPHelper.LocalConnectionHandler.prototype = {
output.write32(data.length);
MeekHTTPHelper.refreshDeadline(this.transport, deadline);
output.writeByteArray(data, data.length);
+ MeekHTTPHelper.refreshDeadline(this.transport, null);
} finally {
output.close();
}
@@ -301,6 +302,7 @@ MeekHTTPHelper.RequestReader.prototype = {
converter.charset = "UTF-8";
var s = converter.convertFromByteArray(this.buf, this.buf.length);
var req = JSON.parse(s);
+ MeekHTTPHelper.refreshDeadline(this.transport, null);
this.callback(req);
},
};
More information about the tor-commits
mailing list