Promise::Promise(const ModelExecution *execution, ModelAction *read, struct future_value fv) :
execution(execution),
num_available_threads(0),
+ num_was_available_threads(0),
fv(fv),
readers(1, read),
write(NULL)
available_thread[id] = true;
num_available_threads++;
}
+ if (id >= was_available_thread.size())
+ was_available_thread.resize(id + 1, false);
+ if (!was_available_thread[id]) {
+ was_available_thread[id] = true;
+ num_was_available_threads++;
+ }
}
/**
return available_thread[id];
}
+bool Promise::thread_was_available(thread_id_t tid) const
+{
+ unsigned int id = id_to_int(tid);
+ if (id >= was_available_thread.size())
+ return false;
+ return was_available_thread[id];
+}
+
/**
* @brief Get an upper bound on the number of available threads
*