? (void *)sa.sa_sigaction : (void *)sa.sa_handler) == SIG_IGN;
}
-static void vlc_kill (void *data)
-{
- pthread_t *ps = data;
- pthread_kill (*ps, SIGTERM);
-}
-
static void exit_timeout (int signum)
{
(void) signum;
sigaddset (&set, SIGCHLD);
/* Block all these signals */
- pthread_t self = pthread_self ();
pthread_sigmask (SIG_SETMASK, &set, NULL);
const char *argv[i_argc + 3];
return 1;
int ret = 1;
- libvlc_set_exit_handler (vlc, vlc_kill, &self);
libvlc_set_app_id (vlc, "org.VideoLAN.VLC", PACKAGE_VERSION, PACKAGE_NAME);
libvlc_set_user_agent (vlc, "VLC media player", "VLC/"PACKAGE_VERSION);
[o_pool release];
}
+/* Used to abort the app.exec() on OSX after libvlc_Quit is called */
+#include "../../../lib/libvlc_internal.h" /* libvlc_SetExitHandler */
+static void QuitVLC( void *obj )
+{
+ [[VLCApplication sharedApplication] performSelectorOnMainThread:@selector(terminate:) withObject:nil waitUntilDone:NO];
+}
+
/*****************************************************************************
* Run: main loop
*****************************************************************************/
o_plItemChangedLock = [[NSLock alloc] init];
o_vout_provider_lock = [[NSLock alloc] init];
+ libvlc_SetExitHandler(p_intf->p_libvlc, QuitVLC, p_intf);
+
[[VLCMain sharedInstance] setIntf: p_intf];
[NSBundle loadNibNamed: @"MainMenu" owner: NSApp];