void ClientUser::remove(unsigned int uiSession) { QWriteLocker lock(&c_qrwlUsers); ClientUser *p = c_qmUsers.take(uiSession); if (p && p->cChannel) p->cChannel->removeUser(p); if (p) { AudioOutputPtr ao = g.ao; if (ao) ao->removeBuffer(p); } }
void ClientUser::remove(unsigned int uiSession) { QWriteLocker lock(&c_qrwlUsers); ClientUser *p = c_qmUsers.take(uiSession); if (p) { if (p->cChannel) p->cChannel->removeUser(p); AudioOutputPtr ao = g.ao; if (ao) ao->removeBuffer(p); if (p->tsState != Settings::Passive) { QWriteLocker writeLock(&c_qrwlTalking); c_qlTalking.removeAll(p); } } }