From 413dc1b0b4efc93755507134cb9a6d092c02aea2 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Wed, 26 Jan 2011 18:05:40 +0100 Subject: wait until child (server) terminates at end --- src/game.c | 8 ++++++-- src/main.c | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/game.c b/src/game.c index 9c0f353..9087832 100644 --- a/src/game.c +++ b/src/game.c @@ -7,8 +7,8 @@ #include #include #include -#include #include +#include #include "ui.h" #include "data_store.h" #include "net/comm.h" @@ -99,7 +99,7 @@ void start_game(const bool servermode, const char* addr, const char* port, const if(servermode) { pid_t child = fork(); - server_process = (child == 0); + server_process = (child == 0); // start server as child } if(server_process) // Start server and connect to localhost @@ -138,6 +138,7 @@ void start_game(const bool servermode, const char* addr, const char* port, const int sock; sleep(1); // TODO make sure server process is listening + sock = client_connect_server(addr, port); data_store_t *data = data_store(); @@ -164,6 +165,9 @@ void start_game(const bool servermode, const char* addr, const char* port, const ple = &data->player_list.players[i]; printf("%s: %d\n", ple->player_name, ple->score); } + + if(servermode) // wait until server (child) has exited + wait(NULL); } destroy_data_store(); diff --git a/src/main.c b/src/main.c index 8ab12f3..71beb56 100644 --- a/src/main.c +++ b/src/main.c @@ -65,5 +65,5 @@ int main(int argc, char *argv[]) start_game(servermode, addr, port, num_players); - return EXIT_SUCCESS; + exit(EXIT_SUCCESS); } -- cgit v1.2.3