summaryrefslogtreecommitdiffstats
path: root/osdep
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-02-13 10:47:07 +0100
committerwm4 <wm4@nowhere>2015-02-13 10:47:07 +0100
commit9e14042e575435e94da660823d14aa6a6b6cb668 (patch)
treec5025bba480078d270c3bb55a91e964a7a5a7de3 /osdep
parent96547a810e87d06121704ed67e3cf44430752c67 (diff)
downloadmpv-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.m7
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);
}
}