Author: cazfi Date: Sun Aug 30 16:23:41 2015 New Revision: 29738 URL: http://svn.gna.org/viewcvs/freeciv?rev=29738&view=rev Log: Destroy "eot" and "between turns" timers also when the server exits via /quit mid-game.
See bug #23826 Modified: trunk/server/srv_main.c Modified: trunk/server/srv_main.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/srv_main.c?rev=29738&r1=29737&r2=29738&view=diff ============================================================================== --- trunk/server/srv_main.c (original) +++ trunk/server/srv_main.c Sun Aug 30 16:23:41 2015 @@ -182,6 +182,11 @@ /* server initialized flag */ static bool has_been_srv_init = FALSE; +/* time server processing at end-of-turn */ +static struct timer *eot_timer = NULL; + +static struct timer *between_turns = NULL; + /************************************************************************** Initialize the game seed. This may safely be called multiple times. **************************************************************************/ @@ -1609,6 +1614,17 @@ **************************************************************************/ void server_quit(void) { + if (game.server.save_timer != NULL) { + timer_destroy(game.server.save_timer); + game.server.save_timer = NULL; + } + if (between_turns != NULL) { + timer_destroy(between_turns); + between_turns = NULL; + } + if (eot_timer != NULL) { + timer_destroy(eot_timer); + } set_server_state(S_S_OVER); mapimg_free(); server_game_free(); @@ -2501,8 +2517,6 @@ **************************************************************************/ static void srv_running(void) { - struct timer *eot_timer; /* time server processing at end-of-turn */ - struct timer *between_turns = NULL; int save_counter = 0, i; bool is_new_turn = game.info.is_new_game; bool skip_mapimg = !game.info.is_new_game; /* Do not overwrite start-of-turn image */ @@ -2514,7 +2528,6 @@ log_verbose("srv_running() mostly redundant send_server_settings()"); send_server_settings(NULL); - eot_timer = timer_new(TIMER_CPU, TIMER_ACTIVE); timer_start(eot_timer); if (game.server.autosaves & (1 << AS_TIMER)) { @@ -2673,7 +2686,7 @@ timer_destroy(between_turns); between_turns = NULL; } - timer_destroy(eot_timer); + timer_clear(eot_timer); } /************************************************************************** @@ -2758,6 +2771,8 @@ exit(EXIT_FAILURE); } } + + eot_timer = timer_new(TIMER_CPU, TIMER_ACTIVE); } /************************************************************************** _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits