-/* Copyright (c) 2010-2015. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2010-2017. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-/* Copyright (c) 2012-2015. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2012-2017. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-/***************** Centralized Mutual Exclusion Algorithm *********************/
-/* This example implements a centralized mutual exclusion algorithm. */
-/* Bug : CS requests of client 1 not satisfied */
-/* LTL property checked : G(r->F(cs)); (r=request of CS, cs=CS ok) */
-/******************************************************************************/
+/***************** Centralized Mutual Exclusion Algorithm *******************/
+/* This example implements a centralized mutual exclusion algorithm. */
+/* Bug : CS requests of client 1 not satisfied */
+/* LTL property checked : G(r->F(cs)); (r=request of CS, cs=CS ok) */
+/****************************************************************************/
#ifdef GARBAGE_STACK
#include <sys/stat.h>
static int coordinator(int argc, char *argv[])
{
- int CS_used = 0;
- msg_task_t task = NULL, answer = NULL;
+ int CS_used = 0;
+ msg_task_t task = NULL;
+ msg_task_t answer = NULL;
xbt_dynar_t requests = xbt_dynar_new(sizeof(char *), NULL);
char *req;
int my_pid = MSG_process_get_PID(MSG_process_self());
char *my_mailbox = xbt_strdup(argv[1]);
- msg_task_t grant = NULL, release = NULL;
+ msg_task_t grant = NULL;
+ msg_task_t release = NULL;
while(1){
XBT_INFO("Ask the request");
-/* Copyright (c) 2010-2015. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2010-2015. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
{
msg_task_t task1 = NULL;
msg_task_t task2 = NULL;
- long val1, val2;
MSG_task_receive(&task1, "mymailbox");
- val1 = xbt_str_parse_int(MSG_task_get_name(task1), "Task name is not a numerical ID: %s");
+ long val1 = xbt_str_parse_int(MSG_task_get_name(task1), "Task name is not a numerical ID: %s");
MSG_task_destroy(task1);
task1 = NULL;
XBT_INFO("Received %lu", val1);
MSG_task_receive(&task2, "mymailbox");
- val2 = xbt_str_parse_int(MSG_task_get_name(task2), "Task name is not a numerical ID: %s");
+ long val2 = xbt_str_parse_int(MSG_task_get_name(task2), "Task name is not a numerical ID: %s");
MSG_task_destroy(task2);
task2 = NULL;
XBT_INFO("Received %lu", val2);
-/* Copyright (c) 2010-2015. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2010-2017. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
static int server(int argc, char *argv[])
{
- msg_task_t task1,task2;
+ msg_task_t task1 = NULL;
+ msg_task_t task2 = NULL;
msg_comm_t comm1 = MSG_task_irecv(&task1, "mymailbox1");
msg_comm_t comm2 = MSG_task_irecv(&task2, "mymailbox2");
{
xbt_assert(refcount_ > 0,
"This activity has a negative refcount! You can only call test() or wait() once per activity.");
-
- // Atomic operation! Do not split in two instructions!
- auto count = --refcount_;
- if (count == 0)
+ refcount_--;
+ if (refcount_ == 0)
delete this;
}