From d2dd113d9ab9e0baa3a49fd9a1a1bb4ee1a37624 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Mon, 11 Apr 2011 17:17:39 +0000 Subject: [PATCH] sectionsd: don't take any chances in deleteEvent() Just take the write lock right away, to make sure nothing changes the event lists behind our backs and possibly corrupts the iterator. git-svn-id: file:///home/bas/coolstream_public_svn/THIRDPARTY/applications/neutrino-experimental@1392 e54a6e83-5905-42d5-8d5c-058d10e6a962 Origin commit data ------------------ Commit: https://github.com/neutrino-images/ni-neutrino/commit/df3d2fbc3b3a1a0abe00c535cd9c77a4f1f058e8 Author: Stefan Seyfried Date: 2011-04-11 (Mon, 11 Apr 2011) --- src/sectionsd/sectionsd.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/sectionsd/sectionsd.cpp b/src/sectionsd/sectionsd.cpp index c85298e64..00069d7a1 100644 --- a/src/sectionsd/sectionsd.cpp +++ b/src/sectionsd/sectionsd.cpp @@ -652,21 +652,17 @@ static void addBouquetFilter(t_bouquet_id bid) // Loescht ein Event aus allen Mengen static bool deleteEvent(const event_id_t uniqueKey) { - readLockEvents(); + writeLockEvents(); MySIeventsOrderUniqueKey::iterator e = mySIeventsOrderUniqueKey.find(uniqueKey); if (e != mySIeventsOrderUniqueKey.end()) { if (e->second->times.size()) { - unlockEvents(); - writeLockEvents(); mySIeventsOrderFirstEndTimeServiceIDEventUniqueKey.erase(e->second); mySIeventsOrderServiceUniqueKeyFirstStartTimeEventUniqueKey.erase(e->second); } - unlockEvents(); - writeLockEvents(); mySIeventsOrderUniqueKey.erase(uniqueKey); mySIeventsNVODorderUniqueKey.erase(uniqueKey);