From f122b5ee75cf18cd4ba58d081677e44763716203 Mon Sep 17 00:00:00 2001 From: Lionel Date: Thu, 6 Jun 2013 23:16:42 +0200 Subject: [PATCH] An example to test MSG semaphores --- examples/msg/semaphores/synchro.c | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 examples/msg/semaphores/synchro.c diff --git a/examples/msg/semaphores/synchro.c b/examples/msg/semaphores/synchro.c new file mode 100644 index 0000000000..fef6142aef --- /dev/null +++ b/examples/msg/semaphores/synchro.c @@ -0,0 +1,51 @@ +#include +#include +#include "msg/msg.h" +#include "xbt/log.h" + +XBT_LOG_NEW_DEFAULT_CATEGORY(msg_semaphore_example, + "Messages specific for this msg example"); + +msg_sem_t sem; + +int peer(int argc, char* argv[]){ + + int i = 0; + + while(i < argc) { + double wait_time = atof(argv[i++]); + MSG_process_sleep(wait_time); + XBT_INFO("Trying to acquire"); + MSG_sem_acquire(sem); + XBT_INFO("Acquired"); + + wait_time = atof(argv[i++]); + MSG_process_sleep(wait_time); + XBT_INFO("Releasing"); + MSG_sem_release(sem); + XBT_INFO("Released"); + } + +} + +int main(int argc, char* argv[]) { + + MSG_init(&argc, argv); + MSG_create_environment(argv[1]); + + xbt_dynar_t hosts = MSG_hosts_as_dynar(); + msg_host_t h = xbt_dynar_get_as(hosts,0,msg_host_t); + + + char* aliceTimes[] = {"0", "1", "3", "5", "1", "2", "5", "0"}; + char* bobTimes[] = {"1", "1", "1", "2", "2", "0", "0", "5"}; + + + MSG_process_create_with_arguments("Alice", peer, NULL, + h, 8, aliceTimes); + MSG_process_create_with_arguments("Bob", peer, NULL, + h, 8, bobTimes); + + MSG_main(); + +} -- 2.20.1