From 6b472cd99954cfd3cfdea5d2a1ad163657ec6a53 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Fri, 17 Apr 2015 16:53:59 +0200 Subject: [PATCH] linuxdvb_ca: coding style update, don't call pthread_join when thread is off --- src/input/mpegts/linuxdvb/linuxdvb_ca.c | 34 ++++++++++++------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/input/mpegts/linuxdvb/linuxdvb_ca.c b/src/input/mpegts/linuxdvb/linuxdvb_ca.c index 7d7004da..18f285a6 100644 --- a/src/input/mpegts/linuxdvb/linuxdvb_ca.c +++ b/src/input/mpegts/linuxdvb/linuxdvb_ca.c @@ -310,24 +310,23 @@ linuxdvb_ca_en50221_thread ( void *aux ) static void linuxdvb_ca_monitor ( void *aux ) { - linuxdvb_ca_t *lca = aux; - ca_slot_info_t csi; - int state; + linuxdvb_ca_t *lca = aux; + ca_slot_info_t csi; + int state; - csi.num = 0; + csi.num = 0; - if (lca->lca_ca_fd > 0) { - - if ((ioctl(lca->lca_ca_fd, CA_GET_SLOT_INFO, &csi)) != 0) { + if (lca->lca_ca_fd > 0) { + if ((ioctl(lca->lca_ca_fd, CA_GET_SLOT_INFO, &csi)) != 0) { tvherror("linuxdvb", "failed to get ca%u slot info [e=%s]", lca->lca_number, strerror(errno)); } if (csi.flags & CA_CI_MODULE_READY) - state = CA_SLOT_STATE_MODULE_READY; + state = CA_SLOT_STATE_MODULE_READY; else if (csi.flags & CA_CI_MODULE_PRESENT) - state = CA_SLOT_STATE_MODULE_PRESENT; + state = CA_SLOT_STATE_MODULE_PRESENT; else - state = CA_SLOT_STATE_EMPTY; + state = CA_SLOT_STATE_EMPTY; if (lca->lca_state != state) { tvhlog(LOG_INFO, "linuxdvb", "ca%u slot %u status changed to %s", @@ -337,15 +336,14 @@ linuxdvb_ca_monitor ( void *aux ) lca->lca_en50221_thread_running = 1; tvhthread_create(&lca->lca_en50221_thread, NULL, linuxdvb_ca_en50221_thread, lca); + } else if (lca->lca_en50221_thread_running) { + lca->lca_en50221_thread_running = 0; + pthread_join(lca->lca_en50221_thread, NULL); + } - } else { - lca->lca_en50221_thread_running = 0; - pthread_join(lca->lca_en50221_thread, NULL); - } - - lca->lca_state = state; - } - } + lca->lca_state = state; + } + } gtimer_arm_ms(&lca->lca_monitor_timer, linuxdvb_ca_monitor, lca, 250); }