]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
linuxdvb_ca: coding style update, don't call pthread_join when thread is off
authorJaroslav Kysela <perex@perex.cz>
Fri, 17 Apr 2015 14:53:59 +0000 (16:53 +0200)
committerJaroslav Kysela <perex@perex.cz>
Fri, 17 Apr 2015 14:53:59 +0000 (16:53 +0200)
src/input/mpegts/linuxdvb/linuxdvb_ca.c

index 7d7004da1bc04edcefdcc0eca9694ba668e31866..18f285a67aa09ff342311427a27b753526aa5400 100644 (file)
@@ -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;
-
-       csi.num = 0;
+  linuxdvb_ca_t *lca = aux;
+  ca_slot_info_t csi;
+  int state;
 
-       if (lca->lca_ca_fd > 0) {
+  csi.num = 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);
 }