obj_thrd_map(new HashTable<void *, std::vector<action_list_t>, uintptr_t, 4 >()),
promises(new std::vector<Promise *>()),
futurevalues(new std::vector<struct PendingFutureValue>()),
- lazy_sync_with_release(new HashTable<void *, std::list<ModelAction *>, uintptr_t, 4>()),
+ lazy_sync_with_release(new HashTable<void *, action_list_t, uintptr_t, 4>()),
thrd_last_action(new std::vector<ModelAction *>(1)),
node_stack(new NodeStack()),
mo_graph(new CycleGraph()),
* @return true, if the ModelChecker is certain that release_heads is complete;
* false otherwise
*/
-bool ModelChecker::release_seq_head(const ModelAction *rf,
- std::vector< const ModelAction *, MyAlloc<const ModelAction *> > *release_heads) const
+bool ModelChecker::release_seq_head(const ModelAction *rf, rel_heads_list_t *release_heads) const
{
if (!rf) {
/* read from future: need to settle this later */
* with the head(s) of the release sequence(s), if they exists with certainty.
* @see ModelChecker::release_seq_head
*/
-void ModelChecker::get_release_seq_heads(ModelAction *act,
- std::vector< const ModelAction *, MyAlloc<const ModelAction *> > *release_heads)
+void ModelChecker::get_release_seq_heads(ModelAction *act, rel_heads_list_t *release_heads)
{
const ModelAction *rf = act->get_reads_from();
bool complete;
complete = release_seq_head(rf, release_heads);
if (!complete) {
/* add act to 'lazy checking' list */
- std::list<ModelAction *> *list;
+ action_list_t *list;
list = lazy_sync_with_release->get_safe_ptr(act->get_location());
list->push_back(act);
(*lazy_sync_size)++;
*/
bool ModelChecker::resolve_release_sequences(void *location, work_queue_t *work_queue)
{
- std::list<ModelAction *> *list;
+ action_list_t *list;
list = lazy_sync_with_release->getptr(location);
if (!list)
return false;
bool updated = false;
- std::list<ModelAction *>::iterator it = list->begin();
+ action_list_t::iterator it = list->begin();
while (it != list->end()) {
ModelAction *act = *it;
const ModelAction *rf = act->get_reads_from();
- std::vector< const ModelAction *, MyAlloc<const ModelAction *> > release_heads;
+ rel_heads_list_t release_heads;
bool complete;
complete = release_seq_head(rf, &release_heads);
for (unsigned int i = 0; i < release_heads.size(); i++) {