X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=model.h;h=7241765d38c5270a33cf25a4986f5dd6fbd9a776;hb=85683f798e0955c43cf6cd8099713c45d9ce882b;hp=867ec0310670f808874aaf7aabe52528fdd2592b;hpb=cef10a2b49af5da16ffe59c5b9ddd210c668fbac;p=model-checker.git diff --git a/model.h b/model.h index 867ec03..7241765 100644 --- a/model.h +++ b/model.h @@ -26,7 +26,7 @@ class CycleGraph; class Promise; /** @brief Shorthand for a list of release sequence heads */ -typedef std::vector< const ModelAction *, MyAlloc > rel_heads_list_t; +typedef std::vector< const ModelAction *, ModelAlloc > rel_heads_list_t; /** * Model checker parameter structure. Holds run-time configuration options for @@ -78,7 +78,6 @@ public: thread_id_t get_next_id(); int get_num_threads(); - modelclock_t get_next_seq_num(); /** @return The currently executing Thread. */ Thread * get_current_thread() { return scheduler->get_current_thread(); } @@ -114,6 +113,8 @@ private: int num_feasible_executions; bool promises_expired(); + modelclock_t get_next_seq_num(); + /** * Stores the ModelAction for the current thread action. Call this * immediately before switching from user- to system-context to pass @@ -152,6 +153,7 @@ private: bool w_modification_order(ModelAction *curr); bool release_seq_head(const ModelAction *rf, rel_heads_list_t *release_heads) const; bool resolve_release_sequences(void *location, work_queue_t *work_queue); + void do_complete_join(ModelAction *join); ModelAction *diverge; ModelAction *earliest_diverge;