X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b24c14fba1046bbf5577d5b0ab1fe47b2af69a0d..3ddb87efeb93cc20cffe56c8e68bb430cc38a91f:/examples/msg/mc/bugged2.c diff --git a/examples/msg/mc/bugged2.c b/examples/msg/mc/bugged2.c index 55574ae584..95c08544e3 100644 --- a/examples/msg/mc/bugged2.c +++ b/examples/msg/mc/bugged2.c @@ -1,48 +1,70 @@ +/******************** Non-deterministic message ordering *********************/ +/* Server assumes a fixed order in the reception of messages from its clients */ +/* which is incorrect because the message ordering is non-deterministic */ +/******************************************************************************/ + #include #include #define N 3 -XBT_LOG_NEW_DEFAULT_CATEGORY(example,"this example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(example, "this example"); -int server(int argc,char *argv[]); -int client(int argc,char *argv[]); +int server(int argc, char *argv[]); +int client(int argc, char *argv[]); -int server(int argc,char *argv[]) +int server(int argc, char *argv[]) { - m_task_t task1, task2; + m_task_t task1 = NULL; + m_task_t task2 = NULL; long val1, val2; - MSG_task_receive(&task1,"mymailbox"); - val1 = (long)MSG_task_get_data(task1); - INFO1("Received %lu", val1); + MSG_task_receive(&task1, "mymailbox"); + val1 = (long) MSG_task_get_data(task1); + MSG_task_destroy(task1); + task1 = NULL; + XBT_INFO("Received %lu", val1); + + MSG_task_receive(&task2, "mymailbox"); + val2 = (long) MSG_task_get_data(task2); + MSG_task_destroy(task2); + task2 = NULL; + XBT_INFO("Received %lu", val2); - MSG_task_receive(&task2,"mymailbox"); - val2 = (long)MSG_task_get_data(task2); - INFO1("Received %lu", val2); + MC_assert(min(val1, val2) == 1); - MC_assert( min(val1, val2) == 1 ); + MSG_task_receive(&task1, "mymailbox"); + val1 = (long) MSG_task_get_data(task1); + MSG_task_destroy(task1); + XBT_INFO("Received %lu", val1); - INFO0("OK"); + MSG_task_receive(&task2, "mymailbox"); + val2 = (long) MSG_task_get_data(task2); + MSG_task_destroy(task2); + XBT_INFO("Received %lu", val2); + + XBT_INFO("OK"); return 0; } -int client(int argc,char *argv[]) +int client(int argc, char *argv[]) { - m_task_t task1 = MSG_task_create("task", 0, 10000, (void *) atol(argv[1])); - m_task_t task2 = MSG_task_create("task", 0, 10000, (void *) atol(argv[1])); + m_task_t task1 = + MSG_task_create("task", 0, 10000, (void *) atol(argv[1])); + m_task_t task2 = + MSG_task_create("task", 0, 10000, (void *) atol(argv[1])); - INFO1("Send %d!", atoi(argv[1])); - MSG_task_send(task1,"mymailbox"); + XBT_INFO("Send %d!", atoi(argv[1])); + MSG_task_send(task1, "mymailbox"); - INFO1("Send %d!", atoi(argv[1])); - MSG_task_send(task2,"mymailbox"); + XBT_INFO("Send %d!", atoi(argv[1])); + MSG_task_send(task2, "mymailbox"); return 0; } -int main(int argc,char*argv[]) +int main(int argc, char *argv[]) { - MSG_global_init(&argc,argv); + MSG_global_init(&argc, argv); MSG_create_environment("platform.xml"); @@ -50,9 +72,9 @@ int main(int argc,char*argv[]) MSG_function_register("client", client); - MSG_launch_application("deploy.xml"); + MSG_launch_application("deploy_bugged2.xml"); MSG_main(); return 0; -} \ No newline at end of file +}