summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2011-11-13 23:27:46 +0100
committerFrank Schmirler <vdr@schmirler.de>2011-11-13 23:27:46 +0100
commitf9224d0618777947f1bc242111f792657e3f5908 (patch)
tree315a1d822e426e737ad145a53bb1c1390a2baed2 /server
parent30674fb6c83fea4f20bd54b70ed23f4defbb9dbd (diff)
downloadvdr-plugin-streamdev-f9224d0618777947f1bc242111f792657e3f5908.tar.gz
vdr-plugin-streamdev-f9224d0618777947f1bc242111f792657e3f5908.tar.bz2
properly shutdown IGMP timeout handler thread when the plugin is stopped.
Fixes occasional segfaults on VDR exit.
Diffstat (limited to 'server')
-rw-r--r--server/componentIGMP.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/server/componentIGMP.c b/server/componentIGMP.c
index 9ad7d30..223aa3c 100644
--- a/server/componentIGMP.c
+++ b/server/componentIGMP.c
@@ -144,7 +144,9 @@ void cComponentIGMP::Destruct(void)
{
if (m_MaxChannelNumber > 0)
{
- Cancel(3);
+ Cancel(-1);
+ m_CondWait.Signal();
+ Cancel(2);
for (cChannel *channel = Channels.First(); channel; channel = Channels.Next(channel))
{
if (channel->GroupSep())