X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/6de03ecc4e630732984a0673512a5d15fd75e270..7862d928239639a5fbde23866f80f1b234ff8396:/examples/msg/migration/migration.c diff --git a/examples/msg/migration/migration.c b/examples/msg/migration/migration.c index 23195981ae..7898153e3b 100644 --- a/examples/msg/migration/migration.c +++ b/examples/msg/migration/migration.c @@ -1,23 +1,18 @@ -/* Copyright (c) 2009-2014. The SimGrid Team. +/* Copyright (c) 2009-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 "msg/msg.h" /* core library */ -#include "xbt/sysdep.h" /* calloc */ +#include "simgrid/msg.h" #include "xbt/synchro_core.h" -/* Create a log channel to have nice outputs. */ -#include "xbt/log.h" -XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, - "Messages specific for this msg example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, "Messages specific for this msg example"); /** @addtogroup MSG_examples * - * - migration/migration.c Demonstrates how to use the @ref - * MSG_process_migrate function to let processes change the host they - * run on after their start. + * - migration/migration.c Demonstrates how to use the @ref MSG_process_migrate function to let processes + * change the host they run on after their start. */ xbt_mutex_t mutex = NULL; @@ -28,18 +23,17 @@ static msg_process_t process_to_migrate = NULL; static int emigrant(int argc, char *argv[]) { msg_task_t task; - XBT_INFO - ("I'll look for a new job on another machine where the grass is greener."); - MSG_process_migrate(MSG_process_self(), MSG_get_host_by_name("Boivin")); - + XBT_INFO("I'll look for a new job on another machine where the grass is greener."); + MSG_process_migrate(MSG_process_self(), MSG_host_by_name("Boivin")); + XBT_INFO("Yeah, found something to do"); task = MSG_task_create("job", 98095000, 0, NULL); MSG_task_execute(task); MSG_task_destroy(task); MSG_process_sleep(2); XBT_INFO("Moving back home after work"); - MSG_process_migrate(MSG_process_self(), MSG_get_host_by_name("Jacquelin")); - MSG_process_migrate(MSG_process_self(), MSG_get_host_by_name("Boivin")); + MSG_process_migrate(MSG_process_self(), MSG_host_by_name("Jacquelin")); + MSG_process_migrate(MSG_process_self(), MSG_host_by_name("Boivin")); MSG_process_sleep(4); xbt_mutex_acquire(mutex); process_to_migrate = MSG_process_self(); @@ -50,48 +44,34 @@ static int emigrant(int argc, char *argv[]) XBT_INFO("I've been moved on this new host: %s", MSG_host_get_name(h)); XBT_INFO("Uh, nothing to do here. Stopping now"); return 0; -} /* end_of_emigrant */ - +} /* This function move the emigrant on Jacquelin */ static int policeman(int argc, char *argv[]) { - xbt_mutex_acquire(mutex); XBT_INFO("Wait a bit before migrating the emigrant."); while (process_to_migrate == NULL) xbt_cond_wait(cond, mutex); - MSG_process_migrate(process_to_migrate, MSG_get_host_by_name("Jacquelin")); + MSG_process_migrate(process_to_migrate, MSG_host_by_name("Jacquelin")); XBT_INFO("I moved the emigrant"); MSG_process_resume(process_to_migrate); xbt_mutex_release(mutex); return 0; -} /* end_of_policeman */ - +} -/** Main function */ int main(int argc, char *argv[]) { msg_error_t res = MSG_OK; - /* Argument checking */ MSG_init(&argc, argv); - if (argc < 3) { - XBT_CRITICAL("Usage: %s platform_file deployment_file\n", argv[0]); - XBT_CRITICAL("example: %s msg_platform.xml msg_deployment_suspend.xml\n", - argv[0]); - exit(1); - } + xbt_assert(argc == 2, "Usage: %s platform_file\n\tExample: %s msg_platform.xml\n", argv[0], argv[0]); - /* Simulation setting */ MSG_create_environment(argv[1]); - /* Application deployment */ - MSG_function_register("emigrant", emigrant); - MSG_function_register("policeman", policeman); - MSG_launch_application(argv[2]); + MSG_process_create("emigrant", emigrant, NULL, MSG_get_host_by_name("Jacquelin")); + MSG_process_create("policeman", policeman, NULL, MSG_get_host_by_name("Boivin")); - /* Run the simulation */ mutex = xbt_mutex_init(); cond = xbt_cond_init(); res = MSG_main(); @@ -99,8 +79,5 @@ int main(int argc, char *argv[]) xbt_cond_destroy(cond); xbt_mutex_destroy(mutex); - if (res == MSG_OK) - return 0; - else - return 1; -} /* end_of_main */ + return res != MSG_OK; +}