diff options
Diffstat (limited to 'media-plugins/vdr-vompserver/files/rrprocstart.patch')
-rw-r--r-- | media-plugins/vdr-vompserver/files/rrprocstart.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/media-plugins/vdr-vompserver/files/rrprocstart.patch b/media-plugins/vdr-vompserver/files/rrprocstart.patch new file mode 100644 index 000000000000..bccdc9d5700d --- /dev/null +++ b/media-plugins/vdr-vompserver/files/rrprocstart.patch @@ -0,0 +1,43 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 10-rrprocstart.dpatch by <marten.richter@freenet.de> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Backport of a bug in rrproc + +fix a message overrun when MediaMVP boots +The topic is documented in http://forum.loggytronic.com/index.php?topic=528.0 + +@DPATCH@ +diff -u vdr-plugin-vompserver-new/vompclientrrproc.c vdr-plugin-vompserver-0.3.1/vompclientrrproc.c +--- vdr-plugin-vompserver-new/vompclientrrproc.c 2010-07-05 19:20:11.000000000 +0200 ++++ vdr-plugin-vompserver-0.3.1/vompclientrrproc.c 2010-07-05 19:24:05.000000000 +0200 +@@ -87,9 +87,25 @@ + + if (req_queue.size() != 0) + { +- log->log("RRProc", Log::ERR, "threadMethod err 1"); +- threadUnlock(); +- return; ++ log->log("RRProc", Log::ERR, "threadMethod startup with already queued packets"); ++ while (req_queue.size()) ++ { ++ //log->log("RRProc", Log::DEBUG, "thread while"); ++ req = req_queue.front(); ++ req_queue.pop(); ++ ++ threadUnlock(); // allow recvRequest to be queuing packets while we are working on this one ++ ++ if (!processPacket()) ++ { ++ log->log("RRProc", Log::ERR, "processPacket exited with fail"); ++ return; ++ } ++ ++ threadLock(); ++ } ++ log->log("RRProc", Log::ERR, "threadMethod startup with already queued packets done."); ++ + } + + while(1) + |