#! /bin/sh /usr/share/dpatch/dpatch-run ## 10-rrprocstart.dpatch by ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Backport of a bug in rrproc @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)