]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
epggrab: Fix busy situation - issue new kick after 64 seconds
authorJaroslav Kysela <perex@perex.cz>
Wed, 2 Jul 2014 15:33:38 +0000 (17:33 +0200)
committerJaroslav Kysela <perex@perex.cz>
Mon, 7 Jul 2014 14:41:52 +0000 (16:41 +0200)
src/epggrab/otamux.c

index 773370a08a76c6b4c762587146eb0fe6a04695d0..90d7508b058e90c483c3a5a375411ee4c2512d98 100644 (file)
@@ -327,7 +327,7 @@ epggrab_ota_kick_cb ( void *p )
     mpegts_network_t *net;
     int failed;
   } networks[64], *net;        /* more than 64 networks? - you're a king */
-  int i, r, networks_count = 0, epg_flag;
+  int i, r, networks_count = 0, epg_flag, kick = 1;
   const char *modname;
   static const char *modnames[] = {
     [MM_EPG_DISABLE]                 = NULL,
@@ -347,6 +347,8 @@ epggrab_ota_kick_cb ( void *p )
   if (!om)
     return;
 
+  tvhtrace("epggrab", "ota - kick callback");
+
 next_one:
   /* Find the mux */
   mm = mpegts_mux_find(om->om_mux_uuid);
@@ -410,12 +412,15 @@ next_one:
   } else {
     mpegts_mux_instance_t *mmi = mm->mm_active;
     epggrab_ota_start(om, mm, mpegts_input_grace(mmi->mmi_input, mm), modname);
+    kick = 0;
   }
 
 done:
   om = TAILQ_FIRST(&epggrab_ota_pending);
   if (networks_count < ARRAY_SIZE(networks) && om && first != om)
     goto next_one;
+  if (kick)
+    epggrab_ota_kick(64); /* a random number? */
 }
 
 /*