#include "xbt/asserts.h"
#include "mc/modelchecker.h"
#include "mc/mc.h"
+#include "xbt/xbt_os_time.h"
+
XBT_LOG_NEW_DEFAULT_CATEGORY(msg_chord,
"Messages specific for this msg example");
static int periodic_check_predecessor_delay = 120;
static int periodic_lookup_delay = 10;
+extern long int smx_total_comms;
+
/**
* Finger element.
*/
// stop the simulation
xbt_free(node.fingers);
+ INFO1("Messages created: %lu", smx_total_comms);
return 0;
}
INFO2("Joining the ring with id %d, knowing node %d", node->id, known_id);
set_predecessor(node, -1); // no predecessor (yet)
+ int i;
+ for (i = 0; i < nb_bits; i++) {
+ set_finger(node, i, known_id);
+ }
+
int successor_id = remote_find_successor(node, known_id, node->id);
if (successor_id == -1) {
INFO0("Cannot join the ring.");
*/
int main(int argc, char *argv[])
{
+ xbt_os_timer_t timer = xbt_os_timer_new();
+
if (argc < 3) {
printf("Usage: %s [-nb_bits=n] [-timeout=t] platform_file deployment_file\n", argv[0]);
printf("example: %s ../msg_platform.xml chord.xml\n", argv[0]);
MSG_function_register("node", node);
MSG_launch_application(application_file);
+ xbt_os_timer_start(timer);
MSG_error_t res = MSG_main();
- INFO1("Simulation time: %g", MSG_get_clock());
+ xbt_os_timer_stop(timer);
+ CRITICAL1("Simulation time %lf", xbt_os_timer_elapsed(timer));
+ INFO1("Simulated time: %g", MSG_get_clock());
MSG_clean();