Author: cazfi Date: Sun Aug 30 16:23:47 2015 New Revision: 29739 URL: http://svn.gna.org/viewcvs/freeciv?rev=29739&view=rev Log: Destroy "eot" and "between turns" timers also when the server exits via /quit mid-game.
See bug #23826 Modified: branches/S2_6/server/srv_main.c Modified: branches/S2_6/server/srv_main.c URL: http://svn.gna.org/viewcvs/freeciv/branches/S2_6/server/srv_main.c?rev=29739&r1=29738&r2=29739&view=diff ============================================================================== --- branches/S2_6/server/srv_main.c (original) +++ branches/S2_6/server/srv_main.c Sun Aug 30 16:23:47 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. **************************************************************************/ @@ -1541,6 +1546,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(); @@ -2433,8 +2449,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 */ @@ -2446,7 +2460,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)) { @@ -2605,7 +2618,7 @@ timer_destroy(between_turns); between_turns = NULL; } - timer_destroy(eot_timer); + timer_clear(eot_timer); } /************************************************************************** @@ -2690,6 +2703,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