X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ed9b07e5c0c7eb6d4d38b0fe5aaea80d6996a8a7..8c3cc1fe798afef50589651b016317b4d5abb74a:/examples/msg/token_ring/ring_call.c diff --git a/examples/msg/token_ring/ring_call.c b/examples/msg/token_ring/ring_call.c index dd69d862cb..bc270cd1ac 100644 --- a/examples/msg/token_ring/ring_call.c +++ b/examples/msg/token_ring/ring_call.c @@ -1,39 +1,30 @@ -/* Copyright (c) 2008-2014. The SimGrid Team. +/* Copyright (c) 2008-2015. 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. */ -#include -#include #include "simgrid/msg.h" -#include "surf/surf_private.h" -int host(int argc, char *argv[]); -unsigned int task_comp_size = 50000000; -unsigned int task_comm_size = 1000000; - -int nb_hosts; /* All declared hosts */ - -XBT_LOG_NEW_DEFAULT_CATEGORY(ring, - "Messages specific for this msg example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(ring, "Messages specific for this msg example"); /** @addtogroup MSG_examples * * @section MSG_ex_apps Examples of full applications * - * - token_ring/ring_call.c: Classical token ring - * communication, where a token is exchanged along a ring to reach - * every participant. - * + * - token_ring/ring_call.c: Classical token ring communication, where a token is exchanged along a ring to + * reach every participant. */ -int host(int argc, char *argv[]) +static int host(int argc, char *argv[]) { - int host_number = atoi(MSG_process_get_name(MSG_process_self())); + unsigned int task_comp_size = 50000000; + unsigned int task_comm_size = 1000000; + int host_number = + xbt_str_parse_int(MSG_process_get_name(MSG_process_self()), "Process name must be an integer but is: %s"); char mailbox[256]; msg_task_t task = NULL; - _XBT_GNUC_UNUSED int res; + XBT_ATTRIB_UNUSED int res; if (host_number == 0){ //master send then receive sprintf(mailbox, "%d", host_number+1); task = MSG_task_create("Token", task_comp_size, task_comm_size, NULL); @@ -44,13 +35,12 @@ int host(int argc, char *argv[]) xbt_assert(res == MSG_OK, "MSG_task_get failed"); XBT_INFO("Host \"%d\" received \"%s\"",host_number, MSG_task_get_name(task)); MSG_task_destroy(task); - } - else{ //slave receive then send + } else{ //slave receive then send res = MSG_task_receive(&(task), MSG_process_get_name(MSG_process_self())); xbt_assert(res == MSG_OK, "MSG_task_get failed"); XBT_INFO("Host \"%d\" received \"%s\"",host_number, MSG_task_get_name(task)); - if(host_number+1 == nb_hosts) + if(host_number+1 == MSG_get_host_number()) sprintf(mailbox, "0"); else sprintf(mailbox, "%d", host_number+1); @@ -62,27 +52,22 @@ int host(int argc, char *argv[]) int main(int argc, char **argv) { - int i,res; + unsigned int i; MSG_init(&argc, argv); MSG_create_environment(argv[1]); xbt_dynar_t hosts = MSG_hosts_as_dynar(); - nb_hosts = xbt_dynar_length(hosts); + msg_host_t h; MSG_function_register("host", host); - XBT_INFO("Number of host '%d'",nb_hosts); - for(i = 0 ; i