#endif
#define UNICODE
-#include <vlc/vlc.h>
+#include <vlc_common.h>
#include "../libvlc.h"
#include <vlc_playlist.h>
#include <vlc_charset.h>
}
}
+ 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" ) ) )
if( GetLastError() != ERROR_ALREADY_EXISTS )
{
/* We are the 1st instance. */
+ static const char typename[] = "ipc helper";
vlc_object_t *p_helper =
- (vlc_object_t *)vlc_object_create( p_this, sizeof(vlc_object_t) );
+ vlc_custom_create( p_this, sizeof(vlc_object_t),
+ VLC_OBJECT_GENERIC, typename );
/* Run the helper thread */
if( vlc_thread_create( p_helper, "IPC helper", IPCHelperThread,
{
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 */
( ( i_opt || p_data->enqueue ) ? 0 : PLAYLIST_GO ),
PLAYLIST_END, -1,
(char const **)( i_options ? &ppsz_argv[i_opt+1] : NULL ),
- i_options, true, false );
+ i_options, true, pl_Unlocked );
i_opt += i_options;
}
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);