X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/872580c107ceddd7a8435ac4d227b05b8475d00a..bae076147bfc88ce8607f15761149f42d0443585:/src/mc/mc_global.cpp diff --git a/src/mc/mc_global.cpp b/src/mc/mc_global.cpp index 076f146fb9..86039ca696 100644 --- a/src/mc/mc_global.cpp +++ b/src/mc/mc_global.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2008-2014. The SimGrid Team. +/* Copyright (c) 2008-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -31,7 +31,7 @@ #include #include #include "../xbt/mmalloc/mmprivate.h" -#include "mc_object_info.h" +#include "mc_dwarf.hpp" #include "mc_comm_pattern.h" #include "mc_request.h" #include "mc_safety.h" @@ -192,11 +192,10 @@ int MC_deadlock_check() { if (mc_mode == MC_MODE_SERVER) { int res; - if ((res = MC_protocol_send_simple_message(mc_model_checker->process().socket, - MC_MESSAGE_DEADLOCK_CHECK))) + if ((res = mc_model_checker->process().send_message(MC_MESSAGE_DEADLOCK_CHECK))) xbt_die("Could not check deadlock state"); s_mc_int_message_t message; - ssize_t s = MC_receive_message(mc_model_checker->process().socket, &message, sizeof(message), 0); + ssize_t s = mc_model_checker->process().receive_message(message); if (s == -1) xbt_die("Could not receive message"); else if (s != sizeof(message) || message.type != MC_MESSAGE_DEADLOCK_CHECK_REPLY) { @@ -456,8 +455,8 @@ void MC_show_stack_liveness(xbt_fifo_t stack) char *req_str = NULL; for (item = xbt_fifo_get_last_item(stack); - (item ? (pair = (mc_pair_t) (xbt_fifo_get_item_content(item))) : (NULL)); - item = xbt_fifo_get_prev_item(item)) { + item; item = xbt_fifo_get_prev_item(item)) { + pair = (mc_pair_t) xbt_fifo_get_item_content(item); req = MC_state_get_executed_request(pair->graph_state, &value); if (req && req->call != SIMCALL_NONE) { req_str = MC_request_to_string(req, value, MC_REQUEST_EXECUTED); @@ -518,49 +517,6 @@ void MC_automaton_load(const char *file) xbt_automaton_load(_mc_property_automaton, file); } -static void register_symbol(xbt_automaton_propositional_symbol_t symbol) -{ - if (mc_mode != MC_MODE_CLIENT) - return; - s_mc_register_symbol_message_t message; - message.type = MC_MESSAGE_REGISTER_SYMBOL; - const char* name = xbt_automaton_propositional_symbol_get_name(symbol); - if (strlen(name) + 1 > sizeof(message.name)) - xbt_die("Symbol is too long"); - strncpy(message.name, name, sizeof(message.name)); - message.callback = xbt_automaton_propositional_symbol_get_callback(symbol); - message.data = xbt_automaton_propositional_symbol_get_data(symbol); - MC_client_send_message(&message, sizeof(message)); -} - -void MC_automaton_new_propositional_symbol(const char *id, int(*fct)(void)) -{ - if (_mc_property_automaton == NULL) - _mc_property_automaton = xbt_automaton_new(); - - xbt_automaton_propositional_symbol_t symbol = xbt_automaton_propositional_symbol_new(_mc_property_automaton, id, fct); - register_symbol(symbol); -} - -void MC_automaton_new_propositional_symbol_pointer(const char *id, int* value) -{ - if (_mc_property_automaton == NULL) - _mc_property_automaton = xbt_automaton_new(); - xbt_automaton_propositional_symbol_t symbol = xbt_automaton_propositional_symbol_new_pointer(_mc_property_automaton, id, value); - register_symbol(symbol); -} - -void MC_automaton_new_propositional_symbol_callback(const char* id, - xbt_automaton_propositional_symbol_callback_type callback, - void* data, xbt_automaton_propositional_symbol_free_function_type free_function) -{ - if (_mc_property_automaton == NULL) - _mc_property_automaton = xbt_automaton_new(); - xbt_automaton_propositional_symbol_t symbol = xbt_automaton_propositional_symbol_new_callback( - _mc_property_automaton, id, callback, data, free_function); - register_symbol(symbol); -} - // TODO, fix cross-process access (this function is not used) void MC_dump_stacks(FILE* file) {