X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=nodestack.cc;h=a73765320dac47e97428390fe37bc3b06ba10483;hb=f4d77c40b4029cdc18f4aaa5a4e01dfbcfca5f7b;hp=85bbf7169248f42e580f0ff2fc6373a4b723ba96;hpb=ae22fcfde9f5bb6894df8bd62ead28f289b82012;p=model-checker.git diff --git a/nodestack.cc b/nodestack.cc index 85bbf71..a737653 100644 --- a/nodestack.cc +++ b/nodestack.cc @@ -4,6 +4,7 @@ #include "action.h" #include "common.h" #include "model.h" +#include "threads.h" /** * @brief Node constructor @@ -77,7 +78,7 @@ Node::~Node() if (action) delete action; if (enabled_array) - MYFREE(enabled_array); + model_free(enabled_array); } /** Prints debugging info for the ModelAction associated with this Node */ @@ -158,7 +159,7 @@ bool Node::add_future_value(uint64_t value, modelclock_t expiration) { if (future_values[i].value == value) { if (future_values[i].expiration>=expiration) return false; - if (future_index < i) { + if (future_index < ((int) i)) { suitableindex=i; } } @@ -178,7 +179,7 @@ bool Node::add_future_value(uint64_t value, modelclock_t expiration) { * @return true if the future_values set is empty. */ bool Node::future_value_empty() { - return ((future_index + 1) >= future_values.size()); + return ((future_index + 1) >= ((int)future_values.size())); } /** @@ -218,7 +219,7 @@ bool Node::read_from_empty() { void Node::explore_child(ModelAction *act, bool * is_enabled) { if ( ! enabled_array ) - enabled_array=(bool *)MYMALLOC(sizeof(bool)*num_threads); + enabled_array=(bool *)model_malloc(sizeof(bool)*num_threads); if (is_enabled != NULL) memcpy(enabled_array, is_enabled, sizeof(bool)*num_threads); else { @@ -273,6 +274,11 @@ bool Node::is_enabled(thread_id_t tid) return thread_id < num_threads && enabled_array[thread_id]; } +bool Node::has_priority(thread_id_t tid) +{ + return fairness[id_to_int(tid)].priority; +} + /** * Add an action to the may_read_from set. * @param act is the action to add @@ -288,12 +294,12 @@ void Node::add_read_from(const ModelAction *act) * @return The first element in future_values */ uint64_t Node::get_future_value() { - ASSERT(future_index