A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge back master branch
[simgrid.git]
/
examples
/
gras
/
mmrpc
/
mmrpc_server.c
diff --git
a/examples/gras/mmrpc/mmrpc_server.c
b/examples/gras/mmrpc/mmrpc_server.c
index
95d70d5
..
a675d3e
100644
(file)
--- a/
examples/gras/mmrpc/mmrpc_server.c
+++ b/
examples/gras/mmrpc/mmrpc_server.c
@@
-1,8
+1,7
@@
-/* $Id$ */
-
/* GridRPC - Fake Grid RPC thingy doing matrix multiplications (as expected)*/
/* 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. */
/* 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. */
@@
-15,15
+14,16
@@
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(MatMult);
typedef xbt_matrix_t request_t[2];
typedef xbt_matrix_t request_t[2];
-static int server_cb_request_handler(gras_msg_cb_ctx_t ctx,
- void *payload_data) {
+static int server_cb_request_handler(gras_msg_cb_ctx_t ctx,
+ void *payload_data)
+{
+
+ gras_socket_t expeditor = gras_msg_cb_ctx_from(ctx);
- gras_socket_t expeditor=gras_msg_cb_ctx_from(ctx);
-
/* 1. Get the payload into the data variable */
/* 1. Get the payload into the data variable */
- xbt_matrix_t *request = (xbt_matrix_t
*)
payload_data;
+ xbt_matrix_t *request = (xbt_matrix_t
*)
payload_data;
xbt_matrix_t result;
xbt_matrix_t result;
-
+
/* 2. Do the computation */
result = xbt_matrix_double_new_mult(request[0], request[1]);
/* 2. Do the computation */
result = xbt_matrix_double_new_mult(request[0], request[1]);
@@
-34,44
+34,45
@@
static int server_cb_request_handler(gras_msg_cb_ctx_t ctx,
xbt_matrix_free(request[0]);
xbt_matrix_free(request[1]);
xbt_matrix_free(result);
xbt_matrix_free(request[0]);
xbt_matrix_free(request[1]);
xbt_matrix_free(result);
- gras_socket_close(expeditor);
-
+
return 0;
return 0;
-} /* end_of_server_cb_request_handler */
+} /* end_of_server_cb_request_handler */
+
+int server(int argc, char *argv[])
+{
+ xbt_ex_t e;
+ gras_socket_t sock = NULL;
+ int port = 4002;
-int server (int argc,char *argv[]) {
- xbt_ex_t e;
- gras_socket_t sock=NULL;
- int port = 4000;
-
/* 1. Init the GRAS infrastructure */
/* 1. Init the GRAS infrastructure */
- gras_init(&argc,argv);
-
+ gras_init(&argc,
argv);
+
/* 2. Get the port I should listen on from the command line, if specified */
if (argc == 2) {
/* 2. Get the port I should listen on from the command line, if specified */
if (argc == 2) {
- port
=
atoi(argv[1]);
+ port
=
atoi(argv[1]);
}
/* 3. Create my master socket */
}
/* 3. Create my master socket */
-
INFO1
("Launch server (port=%d)", port);
+
XBT_INFO
("Launch server (port=%d)", port);
TRY {
sock = gras_socket_server(port);
TRY {
sock = gras_socket_server(port);
- } CATCH(e) {
- RETHROW0("Unable to establish a server socket: %s");
+ }
+ CATCH(e) {
+ RETHROWF("Unable to establish a server socket: %s");
}
/* 4. Register the known messages and payloads. */
mmrpc_register_messages();
}
/* 4. Register the known messages and payloads. */
mmrpc_register_messages();
-
+
/* 5. Register my callback */
/* 5. Register my callback */
- gras_cb_register("request",&server_cb_request_handler);
+ 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);
/* 6. Wait up to 10 minutes for an incomming message to handle */
gras_msg_handle(600.0);
-
+
/* 7. Free the allocated resources, and shut GRAS down */
gras_socket_close(sock);
gras_exit();
/* 7. Free the allocated resources, and shut GRAS down */
gras_socket_close(sock);
gras_exit();
-
+
return 0;
return 0;
-} /* end_of_server */
+}
/* end_of_server */