X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ebf7be2320c9239e70924752b5d9833224113ab4..5d6e2b005da294874b8cf58e7766c9d8138b7aaf:/examples/msg/mc/bugged1_for_liveness.c diff --git a/examples/msg/mc/bugged1_for_liveness.c b/examples/msg/mc/bugged1_for_liveness.c index b45f9ceafd..0a5983d072 100644 --- a/examples/msg/mc/bugged1_for_liveness.c +++ b/examples/msg/mc/bugged1_for_liveness.c @@ -7,9 +7,7 @@ #include "msg/msg.h" #include "mc/mc.h" #include "xbt/automaton.h" -#include "xbt/automatonparse_promela.h" #include "bugged1_liveness.h" -#include "y.tab.c" #define AMOUNT_OF_CLIENTS 2 #define CS_PER_PROCESS 2 @@ -44,28 +42,28 @@ int coordinator(int argc, char *argv[]) XBT_INFO("CS already used. Queue the request of client %d", atoi(req) +1); xbt_dynar_push(requests, &req); } else { // can serve it immediatly - if(strcmp(req, "2") == 0){ - m_task_t answer = MSG_task_create("grant", 0, 1000, NULL); - MSG_task_send(answer, req); - CS_used = 1; - XBT_INFO("CS idle. Grant immediatly"); - } + if(strcmp(req, "2") == 0){ + m_task_t answer = MSG_task_create("grant", 0, 1000, NULL); + MSG_task_send(answer, req); + CS_used = 1; + XBT_INFO("CS idle. Grant immediatly"); + } } } else { // that's a release. Check if someone was waiting for the lock if (xbt_dynar_length(requests) > 0) { XBT_INFO("CS release. Grant to queued requests (queue size: %lu)", xbt_dynar_length(requests)); char *req ; - xbt_dynar_get_cpy(requests, (xbt_dynar_length(requests) - 1), &req); - if(strcmp(req, "2") == 0){ - xbt_dynar_pop(requests, &req); - MSG_task_send(MSG_task_create("grant", 0, 1000, NULL), req); - todo--; - }else{ - xbt_dynar_pop(requests, &req); - MSG_task_send(MSG_task_create("notgrant", 0, 1000, NULL), req); - CS_used = 0; - todo--; - } + xbt_dynar_get_cpy(requests, (xbt_dynar_length(requests) - 1), &req); + if(strcmp(req, "2") == 0){ + xbt_dynar_pop(requests, &req); + MSG_task_send(MSG_task_create("grant", 0, 1000, NULL), req); + todo--; + }else{ + xbt_dynar_pop(requests, &req); + MSG_task_send(MSG_task_create("notgrant", 0, 1000, NULL), req); + CS_used = 0; + todo--; + } } else { // nobody wants it XBT_INFO("CS release. resource now idle"); CS_used = 0; @@ -130,18 +128,16 @@ int client(int argc, char *argv[]) int main(int argc, char *argv[]) { - init(); - yyparse(); - automaton = get_automaton(); - xbt_new_propositional_symbol(automaton,"r", &predR); - xbt_new_propositional_symbol(automaton,"cs", &predCS); + xbt_automaton_t a = MC_create_automaton("promela1_bugged1_liveness"); + xbt_new_propositional_symbol(a,"r", &predR); + xbt_new_propositional_symbol(a,"cs", &predCS); MSG_global_init(&argc, argv); MSG_create_environment("../msg_platform.xml"); MSG_function_register("coordinator", coordinator); MSG_function_register("client", client); MSG_launch_application("deploy_bugged1_liveness.xml"); - MSG_main_liveness(automaton, argv[0]); + MSG_main_liveness(a); return 0; }