From 47bc318a35b706b2efa7ba8713f28f557def3249 Mon Sep 17 00:00:00 2001 From: Thomas Porzelt Date: Sun, 19 Sep 2010 18:03:11 +0200 Subject: [PATCH] [core] Make li_server_ts_format_add() threadsafe --- src/main/server.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/server.c b/src/main/server.c index 49ed7fe..a1fdc70 100644 --- a/src/main/server.c +++ b/src/main/server.c @@ -603,12 +603,20 @@ void li_server_out_of_fds(liServer *srv) { guint li_server_ts_format_add(liServer *srv, GString* format) { /* check if not already registered */ guint i; + + g_mutex_lock(srv->action_mutex); + for (i = 0; i < srv->ts_formats->len; i++) { - if (g_string_equal(g_array_index(srv->ts_formats, GString*, i), format)) + if (g_string_equal(g_array_index(srv->ts_formats, GString*, i), format)) { + g_mutex_unlock(srv->action_mutex); return i; + } } g_array_append_val(srv->ts_formats, format); + + g_mutex_unlock(srv->action_mutex); + return i; }