/* GridRPC - Fake Grid RPC thingy doing matrix multiplications (as expected)*/
-/* Copyright (c) 2005 Martin Quinson. All rights reserved. */
+/* Copyright (c) 2006, 2007, 2009, 2010. The SimGrid Team.
+ * All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
return 0;
} /* end_of_server_cb_request_handler */
+static gras_socket_t try_gras_socket_server(int port)
+{
+ volatile gras_socket_t sock = NULL;
+ TRY {
+ sock = gras_socket_server(port);
+ }
+ CATCH_ANONYMOUS {
+ RETHROWF("Unable to establish a server socket: %s");
+ }
+ return sock;
+}
+
int server(int argc, char *argv[])
{
- xbt_ex_t e;
gras_socket_t sock = NULL;
- int port = 4000;
+ int port = 4002;
/* 1. Init the GRAS infrastructure */
gras_init(&argc, argv);
port = atoi(argv[1]);
}
- /* 3. Create my master socket */
- INFO1("Launch server (port=%d)", port);
- TRY {
- sock = gras_socket_server(port);
- }
- CATCH(e) {
- RETHROW0("Unable to establish a server socket: %s");
- }
-
- /* 4. Register the known messages and payloads. */
+ /* 3. Register the known messages and payloads. */
mmrpc_register_messages();
- /* 5. Register my callback */
+ /* 4. Register my callback */
gras_cb_register("request", &server_cb_request_handler);
+ /* 5. Create my master socket */
+ XBT_INFO("Launch server (port=%d)", port);
+ sock = try_gras_socket_server(port);
+
/* 6. Wait up to 10 minutes for an incomming message to handle */
gras_msg_handle(600.0);