From f5885865da43c62ae7fefc0a1da550a0462fb51c Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Tue, 28 Apr 2009 23:06:16 +0200 Subject: [PATCH] Fix player thread race with update_init() start_server() creates the thread running player_accept() before it calls update_init(). However, update_init() initializes stuff used to player threads: update_time[] and play_lock. In theory, a player thread could start before that, and crash when taking the uninitialized play_lock. Delay starting that tread until after update_init(). --- src/server/main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/server/main.c b/src/server/main.c index 336eb6a6..022f32ab 100644 --- a/src/server/main.c +++ b/src/server/main.c @@ -375,10 +375,9 @@ start_server(int flags) if (journal_startup() < 0) exit(1); - empth_create(player_accept, 50 * 1024, flags, "AcceptPlayers", NULL); - market_init(); update_init(); + empth_create(player_accept, 50 * 1024, flags, "AcceptPlayers", NULL); } /*