[vlc-devel] commit: Do not create an interface thread if not needed ( Rémi Denis-Courmont )
git version control
git at videolan.org
Sat May 23 20:18:17 CEST 2009
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sat May 23 20:34:50 2009 +0300| [c047aa40ae206d1af4ec7f88d511e27d141db759] | committer: Rémi Denis-Courmont
Do not create an interface thread if not needed
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c047aa40ae206d1af4ec7f88d511e27d141db759
---
src/interface/interface.c | 17 ++++++++---------
1 files changed, 8 insertions(+), 9 deletions(-)
diff --git a/src/interface/interface.c b/src/interface/interface.c
index 766c521..c8c97a7 100644
--- a/src/interface/interface.c
+++ b/src/interface/interface.c
@@ -138,6 +138,9 @@ int intf_Create( vlc_object_t *p_this, const char *psz_module )
return VLC_EGENERIC;
}
+ if( p_intf->pf_run == NULL )
+ return VLC_SUCCESS;
+
#if defined( __APPLE__ ) || defined( WIN32 )
/* Hack to get Mac OS X Cocoa runtime running
* (it needs access to the main thread) */
@@ -150,7 +153,7 @@ int intf_Create( vlc_object_t *p_this, const char *psz_module )
vlc_object_release( p_intf );
return VLC_ENOMEM;
}
- RunInterface( VLC_OBJECT(p_intf) );
+ p_intf->pf_run( p_intf );
/* Make sure our MonitorLibVLCDeath thread exit */
vlc_object_kill( p_intf );
@@ -160,8 +163,8 @@ int intf_Create( vlc_object_t *p_this, const char *psz_module )
vlc_object_detach( p_intf );
vlc_object_release( p_intf );
- return VLC_SUCCESS;
}
+ else
#endif
/* Run the interface in a separate thread */
if( vlc_thread_create( p_intf, "interface", RunInterface,
@@ -186,13 +189,12 @@ void intf_StopThread( intf_thread_t *p_intf )
{
/* Tell the interface to die */
vlc_object_kill( p_intf );
- vlc_thread_join( p_intf );
+ if( p_intf->pf_run )
+ vlc_thread_join( p_intf );
module_unneed( p_intf, p_intf->p_module );
}
-
-
/* Following functions are local */
/**
@@ -204,10 +206,7 @@ static void* RunInterface( vlc_object_t *p_this )
{
intf_thread_t *p_intf = (intf_thread_t *)p_this;
- /* Give control to the interface */
- if( p_intf->pf_run )
- p_intf->pf_run( p_intf );
-
+ p_intf->pf_run( p_intf );
return NULL;
}
More information about the vlc-devel
mailing list