vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Sun Apr 12 
09:43:00 2020 +0300| [a3d1ca648f66e2552117af8579c1e10901c72ec5] | committer: 
Rémi Denis-Courmont

podcast: process URLs when the thread starts

Instead of having the Open() function queue an update request, just do
the update at start implicitly. This removes the tiny time window where
the request from Open() would be clobbered by a variable callback.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a3d1ca648f66e2552117af8579c1e10901c72ec5
---

 modules/services_discovery/podcast.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/modules/services_discovery/podcast.c 
b/modules/services_discovery/podcast.c
index f43def9d1f..17b840463d 100644
--- a/modules/services_discovery/podcast.c
+++ b/modules/services_discovery/podcast.c
@@ -130,7 +130,7 @@ static int Open( vlc_object_t *p_this )
     p_sys->i_items = 0;
     vlc_mutex_init( &p_sys->lock );
     vlc_cond_init( &p_sys->wait );
-    p_sys->b_update = true;
+    p_sys->b_update = false;
     p_sys->b_savedurls_loaded = false;
     p_sys->psz_request = NULL;
     p_sys->update_type = UPDATE_URLS;
@@ -190,15 +190,26 @@ noreturn static void *Run( void *data )
 {
     services_discovery_t *p_sd = data;
     services_discovery_sys_t *p_sys  = p_sd->p_sys;
+    int canc;
 
     vlc_mutex_lock( &p_sys->lock );
     mutex_cleanup_push( &p_sys->lock );
+
+    canc = vlc_savecancel();
+    {
+        char *psz_urls = var_GetNonEmptyString( vlc_object_parent(p_sd),
+                                                "podcast-urls" );
+        ParseUrls( p_sd, psz_urls );
+        free( psz_urls );
+    }
+    vlc_restorecancel(canc);
+
     for( ;; )
     {
         while( !p_sys->b_update )
             vlc_cond_wait( &p_sys->wait, &p_sys->lock );
 
-        int canc = vlc_savecancel ();
+        canc = vlc_savecancel();
         msg_Dbg( p_sd, "Update required" );
 
         if( p_sys->update_type == UPDATE_URLS )

_______________________________________________
vlc-commits mailing list
[email protected]
https://mailman.videolan.org/listinfo/vlc-commits

Reply via email to