Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : examples changed
[simgrid.git] / examples / msg / mc / example_liveness_with_cycle.c
index 8ec9725..80765b7 100644 (file)
@@ -1,7 +1,6 @@
 /***************** Centralized Mutual Exclusion Algorithm *********************/
 /* This example implements a centralized mutual exclusion algorithm.          */
-/* There is no bug on it, it is just provided to test the state space         */
-/* reduction of DPOR.                                                         */
+/* CS requests of client 2 not satisfied                                      */
 /******************************************************************************/
 
 #include "msg/msg.h"
@@ -12,7 +11,7 @@
 #include "y.tab.c"
 
 #define AMOUNT_OF_CLIENTS 2
-#define CS_PER_PROCESS 3
+#define CS_PER_PROCESS 4
 
 XBT_LOG_NEW_DEFAULT_CATEGORY(example_liveness_with_cycle, "my log messages");
 
@@ -80,17 +79,20 @@ int client(int argc, char *argv[])
   int my_pid = MSG_process_get_PID(MSG_process_self());
 
   char *my_mailbox = bprintf("%s", argv[1]);
-  // request the CS 3 times, sleeping a bit in between
   int i;
+
+  // request the CS 4 times, sleeping a bit in between
   for (i = 0; i < CS_PER_PROCESS; i++) {
       
     XBT_INFO("Ask the request");
     MSG_task_send(MSG_task_create("request", 0, 1000, my_mailbox), "coordinator");
+
     if(strcmp(my_mailbox, "2") == 0){
       p = 1;
       q = 0;
+      XBT_DEBUG("Propositions changed : p=1, q=0");
     }
+
     // wait the answer
     m_task_t grant = NULL;
     MSG_task_receive(&grant, my_mailbox);
@@ -98,8 +100,10 @@ int client(int argc, char *argv[])
     if(strcmp(my_mailbox, "2") == 0){
       q = 1;
       p = 0;
+      XBT_DEBUG("Propositions changed : p=0, q=1");
     }
 
+
     MSG_task_destroy(grant);
     XBT_INFO("%s got the answer. Sleep a bit and release it", argv[1]);
     MSG_process_sleep(1);
@@ -107,10 +111,12 @@ int client(int argc, char *argv[])
 
     MSG_process_sleep(my_pid);
     
-    q=0;
-    p=0;
+    if(strcmp(my_mailbox, "2") == 0){
+      q=0;
+      p=0;
+      XBT_DEBUG("Propositions changed : p=0, q=0");
+    }
     
-
   }
 
   XBT_INFO("Got all the CS I wanted (%s), quit now", my_mailbox);
@@ -130,8 +136,7 @@ int main(int argc, char *argv[])
   MSG_function_register("coordinator", coordinator);
   MSG_function_register("client", client);
   MSG_launch_application("deploy_mutex2.xml");
-  MSG_main_liveness_stateless(automaton);
-  //MSG_main();
+  MSG_main_liveness_stateless(automaton, argv[0]);
   
   return 0;
 }