mirror of
https://code.videolan.org/videolan/vlc
synced 2024-07-21 07:24:15 +02:00
Do not leak the IPC helper - might fix #1598
This commit is contained in:
parent
de587c2370
commit
a46fb0e4e1
@ -259,6 +259,10 @@ typedef struct libvlc_priv_t
|
||||
unsigned threads_count;
|
||||
vlc_mutex_t threads_lock;
|
||||
vlc_cond_t threads_wait;
|
||||
|
||||
#ifdef WIN32
|
||||
vlc_object_t *ipc_helper;
|
||||
#endif
|
||||
} libvlc_priv_t;
|
||||
|
||||
static inline libvlc_priv_t *libvlc_priv (libvlc_int_t *libvlc)
|
||||
|
@ -149,6 +149,8 @@ void system_Configure( libvlc_int_t *p_this, int *pi_argc, const char *ppsz_argv
|
||||
}
|
||||
}
|
||||
|
||||
libvlc_priv (p_this)->ipc_helper = NULL;
|
||||
|
||||
if( config_GetInt( p_this, "one-instance" )
|
||||
|| ( config_GetInt( p_this, "one-instance-when-started-from-file" )
|
||||
&& config_GetInt( p_this, "started-from-file" ) ) )
|
||||
@ -181,8 +183,10 @@ void system_Configure( libvlc_int_t *p_this, int *pi_argc, const char *ppsz_argv
|
||||
{
|
||||
msg_Err( p_this, "one instance mode DISABLED "
|
||||
"(IPC helper thread couldn't be created)" );
|
||||
|
||||
vlc_object_release (p_helper);
|
||||
}
|
||||
else
|
||||
libvlc_priv (p_this)->ipc_helper = p_helper;
|
||||
|
||||
/* Initialization done.
|
||||
* Release the mutex to unblock other instances */
|
||||
@ -360,6 +364,12 @@ void system_End( libvlc_int_t *p_this )
|
||||
free( vlc_global()->psz_vlcpath );
|
||||
vlc_global()->psz_vlcpath = NULL;
|
||||
}
|
||||
vlc_object_t *obj = libvlc_priv (p_this)->ipc_helper;
|
||||
if (obj)
|
||||
{
|
||||
vlc_thread_join (obj);
|
||||
vlc_object_release (obj);
|
||||
}
|
||||
|
||||
#if !defined( UNDER_CE )
|
||||
timeEndPeriod(5);
|
||||
|
Loading…
Reference in New Issue
Block a user