Hi, Attached patch removes the thread lock from the lirc thread to allow it to be cancelled properly i.e. not cause a deadlock on exit. The lock is not needed anyways. With this patch applied vdr seems to work fine with NPTL i.e. Zapping, Recording, Timeshifting, Cutting do not cause hangs or crashes and vdr exits when requested. cu Ludwig -- (o_ Ludwig.Nussel@gmx.de //\ V_/_ PGP Key ID: FF8135CE
Index: vdr-1.3.17/lirc.c =================================================================== --- vdr-1.3.17.orig/lirc.c +++ vdr-1.3.17/lirc.c @@ -41,6 +41,7 @@ cLircRemote::cLircRemote(char *DeviceNam cLircRemote::~cLircRemote() { Cancel(); + close(f); } bool cLircRemote::Ready(void) @@ -59,8 +60,6 @@ void cLircRemote::Action(void) for (; f >= 0;) { - LOCK_THREAD; - bool ready = cFile::FileReady(f, timeout); int ret = ready ? safe_read(f, buf, sizeof(buf)) : -1;
Attachment:
pgp00016.pgp
Description: PGP signature