summaryrefslogtreecommitdiffstats
path: root/player/client.h
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-09-21 15:55:34 +0200
committerwm4 <wm4@nowhere>2016-09-21 17:34:55 +0200
commit14c232bdbfbb16f427632d579430fa1a522f7f73 (patch)
tree3e5cf05ca68f71f79d9467c1ce482b2feeb56a29 /player/client.h
parent47f3cc7e6bf78609551312f84c93cccf194a5930 (diff)
downloadmpv-14c232bdbfbb16f427632d579430fa1a522f7f73.tar.bz2
mpv-14c232bdbfbb16f427632d579430fa1a522f7f73.tar.xz
client API: fix init/destruction race conditions
mp_new_client() blatantly accessed some mutex-protected state outside of the mutex. The destruction code is in theory OK, but with changes in the following commits it'll be a bit hard to guarantee that it stays this way. Add a simple flag that makes adding new clients impossible, so that having no clients after shutdown_clients() remains guaranteed.
Diffstat (limited to 'player/client.h')
-rw-r--r--player/client.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/player/client.h b/player/client.h
index e8866225a7..e39d0e676a 100644
--- a/player/client.h
+++ b/player/client.h
@@ -16,6 +16,7 @@ struct mp_log;
#define MAX_CLIENT_NAME 64
void mp_clients_init(struct MPContext *mpctx);
+void mp_client_enter_shutdown(struct MPContext *mpctx);
void mp_clients_destroy(struct MPContext *mpctx);
int mp_clients_num(struct MPContext *mpctx);
bool mp_clients_all_initialized(struct MPContext *mpctx);