diff options
| author | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-26 18:05:40 +0100 |
|---|---|---|
| committer | Reiner Herrmann <reiner@reiner-h.de> | 2011-01-26 18:05:40 +0100 |
| commit | 413dc1b0b4efc93755507134cb9a6d092c02aea2 (patch) | |
| tree | 0d00c7a13817bfa65ead2e56a8cdb98f994a7778 /src | |
| parent | c40db03137e77317f37b1822481feb28a01f6e2c (diff) | |
wait until child (server) terminates at end
Diffstat (limited to 'src')
| -rw-r--r-- | src/game.c | 8 | ||||
| -rw-r--r-- | src/main.c | 2 |
2 files changed, 7 insertions, 3 deletions
@@ -7,8 +7,8 @@ #include <time.h> #include <unistd.h> #include <assert.h> -#include <curses.h> #include <sys/types.h> +#include <sys/wait.h> #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(); @@ -65,5 +65,5 @@ int main(int argc, char *argv[]) start_game(servermode, addr, port, num_players); - return EXIT_SUCCESS; + exit(EXIT_SUCCESS); } |
