diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 02:56:39 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-04-06 02:56:39 +0000 |
commit | 46934c09bb8436145897cec8a8693e09b51110e3 (patch) | |
tree | f016eaa5a3724f8eb2c2096bdad166db24943147 /remoting | |
parent | afa9e34273ccc90081cef4d269348174c148367f (diff) | |
download | chromium_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.cc | 8 |
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 |