* cccam_mutex is held
*/
static void
-cccam_service_destroy(th_descrambler_t *td)
+cccam_service_destroy0(th_descrambler_t *td)
{
cccam_service_t *ct = (cccam_service_t *)td;
cccam_t *cccam = ct->cs_cccam;
int i;
- pthread_mutex_lock(&cccam->cccam_mutex);
for (i = 0; i < CCCAM_ES_PIDS; i++)
if (ct->cs_epids[i])
descrambler_close_pid(ct->cs_mux, ct,
free(ct->td_nicename);
free(ct);
+}
+
+/**
+ *
+ */
+static void
+cccam_service_destroy(th_descrambler_t *td)
+{
+ pthread_mutex_lock(&cccam->cccam_mutex);
+ cccam_service_destroy0(td);
pthread_mutex_unlock(&cccam->cccam_mutex);
}
if (!idnode_is_instance(&t->s_id, &mpegts_service_class))
return;
-
pthread_mutex_lock(&cccam->cccam_mutex);
pthread_mutex_lock(&t->s_stream_mutex);
-
LIST_FOREACH(ct, &cccam->cccam_services, cs_link) {
if (ct->td_service == t && ct->cs_cccam == cccam)
break;
if (st) break;
}
if (!pcard) {
- if (ct) cccam_service_destroy((th_descrambler_t*)ct);
+ if (ct) cccam_service_destroy0((th_descrambler_t*)ct);
goto end;
}
if (ct) {
* cwc_mutex is held
*/
static void
-cwc_service_destroy(th_descrambler_t *td)
+cwc_service_destroy0(th_descrambler_t *td)
{
cwc_service_t *ct = (cwc_service_t *)td;
cwc_t *cwc = ct->cs_cwc;
- int i;
- pthread_mutex_lock(&cwc->cwc_mutex);
for (i = 0; i < CWC_ES_PIDS; i++)
if (ct->cs_epids[i])
descrambler_close_pid(ct->cs_mux, ct,
free(ct->td_nicename);
free(ct);
+}
+
+/**
+ * cwc_mutex is held
+ */
+static void
+cwc_service_destroy(th_descrambler_t *td)
+{
+ pthread_mutex_lock(&cwc->cwc_mutex);
+ cwc_service_destroy0(td);
pthread_mutex_unlock(&cwc->cwc_mutex);
}
if (st) break;
}
if (!pcard) {
- if (ct) cwc_service_destroy((th_descrambler_t*)ct);
+ if (ct) cwc_service_destroy0((th_descrambler_t*)ct);
goto end;
}
if (ct) {