summaryrefslogtreecommitdiffstats
path: root/remoting
diff options
context:
space:
mode:
authorsergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-06 02:56:39 +0000
committersergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-04-06 02:56:39 +0000
commit46934c09bb8436145897cec8a8693e09b51110e3 (patch)
treef016eaa5a3724f8eb2c2096bdad166db24943147 /remoting
parentafa9e34273ccc90081cef4d269348174c148367f (diff)
downloadchromium_src-46934c09bb8436145897cec8a8693e09b51110e3.zip
chromium_src-46934c09bb8436145897cec8a8693e09b51110e3.tar.gz
chromium_src-46934c09bb8436145897cec8a8693e09b51110e3.tar.bz2
Implement write-waits-for-send mode for PseudoTCP and enable it on the host side.
In the new send-confirmation mode the PseudoTCP layer will wait until data is sent to remote end before completing each write. This significantly improves latency for remoting on low bandwidth networks. Review URL: http://codereview.chromium.org/9791012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@131083 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting')
-rw-r--r--remoting/protocol/libjingle_transport_factory.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/remoting/protocol/libjingle_transport_factory.cc b/remoting/protocol/libjingle_transport_factory.cc
index f80be95..2c16101 100644
--- a/remoting/protocol/libjingle_transport_factory.cc
+++ b/remoting/protocol/libjingle_transport_factory.cc
@@ -9,6 +9,7 @@
#include "jingle/glue/pseudotcp_adapter.h"
#include "jingle/glue/utils.h"
#include "net/base/net_errors.h"
+#include "remoting/base/constants.h"
#include "remoting/protocol/channel_authenticator.h"
#include "remoting/protocol/transport_config.h"
#include "third_party/libjingle/source/talk/base/basicpacketsocketfactory.h"
@@ -184,6 +185,12 @@ void LibjingleStreamTransport::Connect(
socket_->SetNoDelay(true);
socket_->SetAckDelay(kTcpAckDelayMilliseconds);
+ // TODO(sergeyu): This is a hack to improve latency of the video
+ // channel. Consider removing it once we have better flow control
+ // implemented.
+ if (name_ == kVideoChannelName)
+ socket_->SetWriteWaitsForSend(true);
+
int result = socket_->Connect(
base::Bind(&LibjingleStreamTransport::OnTcpConnected,
base::Unretained(this)));
@@ -342,6 +349,5 @@ LibjingleTransportFactory::CreateDatagramTransport() {
return scoped_ptr<DatagramTransport>(NULL);
}
-
} // namespace protocol
} // namespace remoting