ASSERT(cv);
reads_from = act;
if (act != NULL && this->is_acquire()) {
- std::vector<const ModelAction *> release_heads;
+ std::vector< const ModelAction *, MyAlloc<const ModelAction *> > release_heads;
model->get_release_seq_heads(this, &release_heads);
for (unsigned int i = 0; i < release_heads.size(); i++)
synchronize_with(release_heads[i]);
#include <vector>
#include <inttypes.h>
+#include "mymemory.h"
+
class CycleNode;
class ModelAction;
void commitChanges();
void rollbackChanges();
+ SNAPSHOTALLOC
private:
CycleNode * getNode(const ModelAction *);
hasRMW=NULL;
}
+ SNAPSHOTALLOC
private:
/** @brief The ModelAction that this node represents */
const ModelAction *action;
* false otherwise
*/
bool ModelChecker::release_seq_head(const ModelAction *rf,
- std::vector<const ModelAction *> *release_heads) const
+ std::vector< const ModelAction *, MyAlloc<const ModelAction *> > *release_heads) const
{
if (!rf) {
/* read from future: need to settle this later */
* @see ModelChecker::release_seq_head
*/
void ModelChecker::get_release_seq_heads(ModelAction *act,
- std::vector<const ModelAction *> *release_heads)
+ std::vector< const ModelAction *, MyAlloc<const ModelAction *> > *release_heads)
{
const ModelAction *rf = act->get_reads_from();
bool complete;
while (it != list->end()) {
ModelAction *act = *it;
const ModelAction *rf = act->get_reads_from();
- std::vector<const ModelAction *> release_heads;
+ std::vector< const ModelAction *, MyAlloc<const ModelAction *> > release_heads;
bool complete;
complete = release_seq_head(rf, &release_heads);
for (unsigned int i = 0; i < release_heads.size(); i++) {
bool isfinalfeasible();
void check_promises(ClockVector *old_cv, ClockVector * merge_cv);
void get_release_seq_heads(ModelAction *act,
- std::vector<const ModelAction *> *release_heads);
+ std::vector< const ModelAction *, MyAlloc<const ModelAction *> > *release_heads);
void finish_execution();
bool isfeasibleprefix();
void set_assert() {asserted=true;}
bool r_modification_order(ModelAction *curr, const ModelAction *rf);
bool w_modification_order(ModelAction *curr);
bool release_seq_head(const ModelAction *rf,
- std::vector<const ModelAction *> *release_heads) const;
+ std::vector< const ModelAction *, MyAlloc<const ModelAction *> > *release_heads) const;
bool resolve_release_sequences(void *location);
ModelAction *diverge;