summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStuart Morgan <smorgan@mythtv.org>2012-06-25 10:43:28 (GMT)
committer Stuart Morgan <smorgan@mythtv.org>2012-06-25 10:43:28 (GMT)
commit529853d11587ebee0b77753272d6dcc1a5404a11 (patch)
tree01e12231df0c6fafda3a5f806cc6cba2946ee73f
parent7190ddc5253a7f9b787881f4f03727fcf1abc076 (diff)
Move QUERY_FILETRANSFER handling to improve backend performance.
This significantly reduces the backend CPU usage for me when streaming a recording or other file to the frontend. Each time we send a command to the backend we perform a number of string comparisons to find the correct handler. In the cases where that same command is sent regularly, maybe several times a second those comparisons can stack up to result in a high CPU load. This can be avoided by moving the most frequently used commands to the top of the list thereby avoiding a couple of dozen or more comparisons each time. There may be other commands that should be moved to the top with similar benefit.
-rw-r--r--mythtv/programs/mythbackend/mainserver.cpp16
1 files changed, 8 insertions, 8 deletions
diff --git a/mythtv/programs/mythbackend/mainserver.cpp b/mythtv/programs/mythbackend/mainserver.cpp
index 65f19e8..5f30b8c 100644
--- a/mythtv/programs/mythbackend/mainserver.cpp
+++ b/mythtv/programs/mythbackend/mainserver.cpp
@@ -434,7 +434,14 @@ void MainServer::ProcessRequestWork(MythSocket *sock)
pbs->IncrRef();
sockListLock.unlock();
- if (command == "QUERY_RECORDINGS")
+ if (command == "QUERY_FILETRANSFER")
+ {
+ if (tokens.size() != 2)
+ LOG(VB_GENERAL, LOG_ERR, "Bad QUERY_FILETRANSFER");
+ else
+ HandleFileTransferQuery(listline, tokens, pbs);
+ }
+ else if (command == "QUERY_RECORDINGS")
{
if (tokens.size() != 2)
LOG(VB_GENERAL, LOG_ERR, "Bad QUERY_RECORDINGS query");
@@ -632,13 +639,6 @@ void MainServer::ProcessRequestWork(MythSocket *sock)
{
HandleGetRecorderNum(listline, pbs);
}
- else if (command == "QUERY_FILETRANSFER")
- {
- if (tokens.size() != 2)
- LOG(VB_GENERAL, LOG_ERR, "Bad QUERY_FILETRANSFER");
- else
- HandleFileTransferQuery(listline, tokens, pbs);
- }
else if (command == "QUERY_GENPIXMAP2")
{
HandleGenPreviewPixmap(listline, pbs);