for (iter = localPBSList.begin(); iter != localPBSList.end(); iter++) { PlaybackSock *pbs = (*iter); if (sentSet.containsRef(pbs) || pbs->IsDisconnected()) continue; sentSet.append(pbs); bool reallysendit = false; if (broadcast[1] == "CLEAR_SETTINGS_CACHE") { if ((ismaster) && (pbs->isSlaveBackend() || pbs->wantsEvents())) reallysendit = true; } else if (sendGlobal) { if (pbs->isSlaveBackend()) reallysendit = true; } else if (pbs->wantsEvents()) { reallysendit = true; } MythSocket *sock = pbs->getSocket(); sock->UpRef(); if (reallysendit) { sock->Lock(); sock->writeStringList(broadcast); sock->Unlock(); } if (sock->DownRef()) { // was deleted elsewhere, so the iterator's invalid. iter = playbackList.begin(); } }