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
