From 8582f2327acf11e0d3d7c417045a7393e4dd7d62 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Fri, 14 Oct 2011 13:38:25 +0200 Subject: [PATCH] Fix race condition with gras-mmrpc test. Register messages before opening the sockets, to avoid to receive unknown messages. --- examples/gras/mmrpc/mmrpc_client.c | 9 ++++----- examples/gras/mmrpc/mmrpc_server.c | 14 +++++++------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/examples/gras/mmrpc/mmrpc_client.c b/examples/gras/mmrpc/mmrpc_client.c index ec62e3690e..4719e1d007 100644 --- a/examples/gras/mmrpc/mmrpc_client.c +++ b/examples/gras/mmrpc/mmrpc_client.c @@ -37,7 +37,10 @@ int client(int argc, char *argv[]) XBT_INFO("Launch client (server on %s:%d)", host, port); - /* 3. Create a socket to speak to the server */ + /* 3. Register the messages (before use) */ + mmrpc_register_messages(); + + /* 4. Create a socket to speak to the server */ while (!connected) { TRY { toserver = gras_socket_client(host, port); @@ -52,10 +55,6 @@ int client(int argc, char *argv[]) } XBT_INFO("Connected to %s:%d.", host, port); - - /* 4. Register the messages (before use) */ - mmrpc_register_messages(); - /* 5. Keep the user informed of what's going on */ XBT_INFO(">>>>>>>> Connected to server which is on %s:%d <<<<<<<<", gras_socket_peer_name(toserver), gras_socket_peer_port(toserver)); diff --git a/examples/gras/mmrpc/mmrpc_server.c b/examples/gras/mmrpc/mmrpc_server.c index 7784d041f7..bcaf5f1a00 100644 --- a/examples/gras/mmrpc/mmrpc_server.c +++ b/examples/gras/mmrpc/mmrpc_server.c @@ -51,7 +51,13 @@ int server(int argc, char *argv[]) port = atoi(argv[1]); } - /* 3. Create my master socket */ + /* 3. Register the known messages and payloads. */ + mmrpc_register_messages(); + + /* 4. Register my callback */ + gras_cb_register("request", &server_cb_request_handler); + + /* 5. Create my master socket */ XBT_INFO("Launch server (port=%d)", port); TRY { sock = gras_socket_server(port); @@ -60,12 +66,6 @@ int server(int argc, char *argv[]) RETHROWF("Unable to establish a server socket: %s"); } - /* 4. Register the known messages and payloads. */ - mmrpc_register_messages(); - - /* 5. Register my callback */ - gras_cb_register("request", &server_cb_request_handler); - /* 6. Wait up to 10 minutes for an incomming message to handle */ gras_msg_handle(600.0); -- 2.20.1