Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Ensure the task is correctly destroyed when the host turns off during execute.
[simgrid.git] / teshsuite / msg / get_sender / get_sender.c
index 8cdab2f..821d5d8 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2009-2015. The SimGrid Team.
+/* Copyright (c) 2009-2019. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -12,7 +12,7 @@ static int sender_fun(int argc, char *argv[])
 {
   XBT_INFO("Sending");
   MSG_task_send(MSG_task_create("Blah", 0.0, 0.0, NULL), MSG_host_get_name(MSG_host_self()));
-  MSG_process_sleep(1.);     /* FIXME: if the sender exits before the receiver calls get_sender(), bad thing happens */
+  MSG_process_sleep(1.0);
   XBT_INFO("Exiting");
   return 0;
 }
@@ -24,14 +24,14 @@ static int receiver_fun(int argc, char *argv[])
   MSG_task_receive_with_timeout(&task, MSG_host_get_name(MSG_host_self()), DBL_MAX);
   xbt_assert(MSG_task_get_sender(task), "No sender received");
   XBT_INFO("Got a message sent by '%s'", MSG_process_get_name(MSG_task_get_sender(task)));
+  MSG_process_sleep(2.0);
+  XBT_INFO("Did I tell you that I got a message sent by '%s'?", MSG_process_get_name(MSG_task_get_sender(task)));
   MSG_task_destroy(task);
   return 0;
 }
 
 int main(int argc, char *argv[])
 {
-  msg_error_t res = MSG_OK;
-
   MSG_init(&argc, argv);
 
   MSG_create_environment(argv[1]);
@@ -39,6 +39,5 @@ int main(int argc, char *argv[])
   MSG_process_create("send", sender_fun, NULL, MSG_get_host_by_name("Tremblay"));
   MSG_process_create("receive", receiver_fun, NULL, MSG_get_host_by_name("Tremblay"));
 
-  res = MSG_main();
-  return res != MSG_OK;
+  return MSG_main() != MSG_OK;
 }