From f7b6f9bb727e7339a74aaca720a85f6f8508b203 Mon Sep 17 00:00:00 2001 From: Daniel Thor Kristjansson Date: Mon, 26 Nov 2012 17:20:14 -0500 Subject: [PATCH] Speed up RemoteFile::Read() EOF handling. Stuart Morgan discovered the regression. This code got slower in the MythSocket conversion. But with some small changes playback startup and seeks with RemoteFile are now faster than they have ever been. --- mythtv/libs/libmythbase/remotefile.cpp | 25 ++++++++----------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/mythtv/libs/libmythbase/remotefile.cpp b/mythtv/libs/libmythbase/remotefile.cpp index d81f7fa8e77..7239de5f23e 100644 --- a/mythtv/libs/libmythbase/remotefile.cpp +++ b/mythtv/libs/libmythbase/remotefile.cpp @@ -557,23 +557,14 @@ int RemoteFile::Read(void *data, int size) while (recv < sent && !error && mtimer.elapsed() < 10000) { - MythTimer ctt; // check control socket timer - ctt.start(); - while ((recv < sent) && (ctt.elapsed() < 500)) - { - int ret = sock->Read( - ((char *)data) + recv, sent - recv, 500); - if (ret > 0) - { - recv += ret; - } - else if (ret < 0) - { - error = true; - } - if (waitms < 200) - waitms += 20; - } + int ret = sock->Read(((char *)data) + recv, sent - recv, waitms); + + if (ret > 0) + recv += ret; + else if (ret < 0) + error = true; + + waitms += (waitms < 200) ? 20 : 0; if (controlSock->IsDataAvailable() && controlSock->ReadStringList(strlist, MythSocket::kShortTimeout) &&