diff options
author | Frank Schmirler <vdr@schmirler.de> | 2011-11-13 23:27:46 +0100 |
---|---|---|
committer | Frank Schmirler <vdr@schmirler.de> | 2011-11-13 23:27:46 +0100 |
commit | f9224d0618777947f1bc242111f792657e3f5908 (patch) | |
tree | 315a1d822e426e737ad145a53bb1c1390a2baed2 /server | |
parent | 30674fb6c83fea4f20bd54b70ed23f4defbb9dbd (diff) | |
download | vdr-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.c | 4 |
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()) |