From c7d20372239ef90986ebbdffa36e3c252b41f340 Mon Sep 17 00:00:00 2001 From: Gabriel Corona Date: Mon, 8 Jun 2015 11:17:28 +0200 Subject: [PATCH] [mc] Make Snapshot::enabled_process a std::set --- src/mc/mc_checkpoint.cpp | 4 +--- src/mc/mc_compare.cpp | 8 ++------ src/mc/mc_snapshot.cpp | 2 +- src/mc/mc_snapshot.h | 4 +++- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/mc/mc_checkpoint.cpp b/src/mc/mc_checkpoint.cpp index 77bbfd6be1..341e81be2b 100644 --- a/src/mc/mc_checkpoint.cpp +++ b/src/mc/mc_checkpoint.cpp @@ -636,11 +636,9 @@ mc_snapshot_t MC_take_snapshot(int num_state) snapshot->process = mc_process; snapshot->num_state = num_state; - snapshot->enabled_processes = xbt_dynar_new(sizeof(int), NULL); - smx_process_t process; MC_EACH_SIMIX_PROCESS(process, - xbt_dynar_push_as(snapshot->enabled_processes, int, (int)process->pid)); + snapshot->enabled_processes.insert(process->pid)); MC_snapshot_handle_ignore(snapshot); diff --git a/src/mc/mc_compare.cpp b/src/mc/mc_compare.cpp index 89b495b389..356a1ec2db 100644 --- a/src/mc/mc_compare.cpp +++ b/src/mc/mc_compare.cpp @@ -440,14 +440,10 @@ int snapshot_compare(void *state1, void *state2) } /* Compare enabled processes */ - unsigned int cursor; - int pid; - xbt_dynar_foreach(s1->enabled_processes, cursor, pid){ - if(!xbt_dynar_member(s2->enabled_processes, &pid)) { + if (s1->enabled_processes != s2->enabled_processes) { //XBT_TRACE3(mc, state_diff, num1, num2, "Different enabled processes"); XBT_VERB("(%d - %d) Different enabled processes", num1, num2); // return 1; ?? - } } unsigned long i = 0; @@ -526,7 +522,7 @@ int snapshot_compare(void *state1, void *state2) #endif /* Stacks comparison */ - cursor = 0; + unsigned cursor = 0; int diff_local = 0; #ifdef MC_DEBUG is_diff = 0; diff --git a/src/mc/mc_snapshot.cpp b/src/mc/mc_snapshot.cpp index 08eb1b1bb5..c3948710e4 100644 --- a/src/mc/mc_snapshot.cpp +++ b/src/mc/mc_snapshot.cpp @@ -159,7 +159,7 @@ Snapshot::Snapshot() : heap_bytes_used(0), snapshot_regions(nullptr), snapshot_regions_count(0), - enabled_processes(0), + enabled_processes(), privatization_index(0), stack_sizes(nullptr), stacks(nullptr), diff --git a/src/mc/mc_snapshot.h b/src/mc/mc_snapshot.h index d6bd33bcd1..6a23ca0f24 100644 --- a/src/mc/mc_snapshot.h +++ b/src/mc/mc_snapshot.h @@ -10,6 +10,8 @@ #include // off_t #include // size_t +#include + #include #include "../xbt/mmalloc/mmprivate.h" #include @@ -108,7 +110,7 @@ public: // To be private size_t heap_bytes_used; mc_mem_region_t* snapshot_regions; size_t snapshot_regions_count; - xbt_dynar_t enabled_processes; + std::set enabled_processes; int privatization_index; size_t *stack_sizes; xbt_dynar_t stacks; -- 2.20.1