From: Lionel Date: Thu, 6 Jun 2013 21:16:42 +0000 (+0200) Subject: An example to test MSG semaphores X-Git-Tag: v3_9_90~322 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/f122b5ee75cf18cd4ba58d081677e44763716203 An example to test MSG semaphores --- 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(); + +}