1
0
mirror of https://github.com/rofafor/vdr-plugin-satip.git synced 2023-10-10 13:37:42 +02:00

Moved send loop one level down.

This commit is contained in:
Alexander Pipelka 2017-09-28 10:25:16 +02:00
parent ece52576dd
commit 46a197d8f8
2 changed files with 22 additions and 21 deletions

View File

@ -271,8 +271,9 @@ cSatipSectionFilterHandler::~cSatipSectionFilterHandler()
Delete(i); Delete(i);
} }
bool cSatipSectionFilterHandler::Send(void) void cSatipSectionFilterHandler::SendAll(void)
{ {
while (true) {
// zero polling structures // zero polling structures
memset(pollFdsM, 0, sizeof(pollFdsM)); memset(pollFdsM, 0, sizeof(pollFdsM));
@ -286,14 +287,14 @@ bool cSatipSectionFilterHandler::Send(void)
// anyone ready for writing // anyone ready for writing
if (poll(pollFdsM, eMaxSecFilterCount, eSecFilterSendTimeoutMs) <= 0) if (poll(pollFdsM, eMaxSecFilterCount, eSecFilterSendTimeoutMs) <= 0)
return false; return;
// send data // send data
for (unsigned int i = 0; i < eMaxSecFilterCount; ++i) { for (unsigned int i = 0; i < eMaxSecFilterCount; ++i) {
if (pollFdsM[i].revents & POLLOUT) if (pollFdsM[i].revents & POLLOUT)
filtersM[i]->Send(); filtersM[i]->Send();
} }
return true; }
} }
void cSatipSectionFilterHandler::Action(void) void cSatipSectionFilterHandler::Action(void)
@ -330,7 +331,7 @@ void cSatipSectionFilterHandler::Action(void)
// Send demuxed section packets through all filters // Send demuxed section packets through all filters
mutexM.Lock(); mutexM.Lock();
while (Send()) ; SendAll();
mutexM.Unlock(); mutexM.Unlock();
} }
debug1("%s Exiting [device %d]", __PRETTY_FUNCTION__, deviceIndexM); debug1("%s Exiting [device %d]", __PRETTY_FUNCTION__, deviceIndexM);

View File

@ -76,7 +76,7 @@ private:
bool Delete(unsigned int indexP); bool Delete(unsigned int indexP);
bool IsBlackListed(u_short pidP, u_char tidP, u_char maskP) const; bool IsBlackListed(u_short pidP, u_char tidP, u_char maskP) const;
bool Send(void); void SendAll(void);
protected: protected:
virtual void Action(void); virtual void Action(void);