From 42528e51b9fadb0cae3b553cf6177334decfbb0e Mon Sep 17 00:00:00 2001 From: mquinson Date: Tue, 5 May 2009 16:10:10 +0000 Subject: [PATCH] draft implementation of the 4 basic actions git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6271 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- examples/msg/actions/actions.c | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/examples/msg/actions/actions.c b/examples/msg/actions/actions.c index 38f6c22842..df2ebf295b 100644 --- a/examples/msg/actions/actions.c +++ b/examples/msg/actions/actions.c @@ -13,16 +13,36 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test,"Messages specific for this msg example"); /* My actions */ static void send(xbt_dynar_t action) { - INFO1("Send: %s",xbt_str_join(action," ")); + char *name=xbt_str_join(action," "); + char *to = xbt_dynar_get_as(action,2,char*); + char *size=xbt_dynar_get_as(action,3,char*); + INFO1("Send: %s",name); + MSG_task_send(MSG_task_create(name, 0, atoi(size), NULL), to); + INFO1("Sent %s",name); } static void recv(xbt_dynar_t action) { - INFO1("Recv: %s",xbt_str_join(action," ")); + m_task_t task = NULL; + INFO1("Receiving: %s",xbt_str_join(action," ")); + //FIXME: argument of action ignored so far; semantic not clear + //char *from=xbt_dynar_get_as(action,2,char*); + MSG_task_receive(&task,MSG_process_get_name(MSG_process_self())); + INFO1("Received %s",MSG_task_get_name(task)); + MSG_task_destroy(task); } static void sleep(xbt_dynar_t action) { - INFO1("Recv: %s",xbt_str_join(action," ")); + char *duration=xbt_dynar_get_as(action,2,char*); + INFO1("sleep: %s",xbt_str_join(action," ")); + MSG_process_sleep(atoi(duration)); + INFO1("sleept: %s",xbt_str_join(action," ")); } static void compute(xbt_dynar_t action) { - INFO1("compute: %s",xbt_str_join(action," ")); + char *name=xbt_str_join(action," "); + char *amout=xbt_dynar_get_as(action,2,char*); + m_task_t task = MSG_task_create(name, atoi(amout), 0, NULL); + INFO1("computing: %s",name); + MSG_task_execute(task); + MSG_task_destroy(task); + INFO1("computed: %s",name); } /** Main function */ -- 2.20.1