diff options
author | wm4 <wm4@nowhere> | 2015-02-13 10:47:07 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-02-13 10:47:07 +0100 |
commit | 9e14042e575435e94da660823d14aa6a6b6cb668 (patch) | |
tree | c5025bba480078d270c3bb55a91e964a7a5a7de3 /osdep | |
parent | 96547a810e87d06121704ed67e3cf44430752c67 (diff) | |
download | mpv-9e14042e575435e94da660823d14aa6a6b6cb668.tar.bz2 mpv-9e14042e575435e94da660823d14aa6a6b6cb668.tar.xz |
cocoa: fix exiting the command line player
Commit e920a00eb assumed that terminate_cocoa_application() actually
would exit. But apparently that is not always the case; e.g. mpv --help
will just hang. The old code had a dummy exit(0), which was apparently
actually called. Fix by explicitly exiting if mpv_main() returns and
terminate_cocoa_application() does nothing.
Diffstat (limited to 'osdep')
-rw-r--r-- | osdep/macosx_application.m | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/osdep/macosx_application.m b/osdep/macosx_application.m index 008622f3ea..39800dbbb6 100644 --- a/osdep/macosx_application.m +++ b/osdep/macosx_application.m @@ -273,11 +273,10 @@ static void *playback_thread(void *ctx_obj) mpthread_set_name("playback core (OSX)"); @autoreleasepool { struct playback_thread_ctx *ctx = (struct playback_thread_ctx*) ctx_obj; - ctx->mpv_main(*ctx->argc, *ctx->argv); + int r = ctx->mpv_main(*ctx->argc, *ctx->argv); terminate_cocoa_application(); - // normally never reached - cocoa_stop_runloop(); - pthread_exit(NULL); + // normally never reached - unless the cocoa mainloop hasn't started yet + exit(r); } } |