projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
scanalysis: don't rely on greedy search
[model-checker.git]
/
execution.h
diff --git
a/execution.h
b/execution.h
index 6e4fd2ab900988df3d40e1b06be6c8f38d8df3f7..7f63e6d99812c98f5732d35c52a1e04f8691ac17 100644
(file)
--- a/
execution.h
+++ b/
execution.h
@@
-61,11
+61,13
@@
struct release_seq {
class ModelExecution {
public:
ModelExecution(ModelChecker *m,
class ModelExecution {
public:
ModelExecution(ModelChecker *m,
- struct model_params *params,
+
const
struct model_params *params,
Scheduler *scheduler,
NodeStack *node_stack);
~ModelExecution();
Scheduler *scheduler,
NodeStack *node_stack);
~ModelExecution();
+ const struct model_params * get_params() const { return params; }
+
Thread * take_step(ModelAction *curr);
void fixup_release_sequences();
Thread * take_step(ModelAction *curr);
void fixup_release_sequences();
@@
-107,6
+109,7
@@
public:
bool is_feasible_prefix_ignore_relseq() const;
bool is_infeasible() const;
bool is_deadlocked() const;
bool is_feasible_prefix_ignore_relseq() const;
bool is_infeasible() const;
bool is_deadlocked() const;
+ bool is_yieldblocked() const;
bool too_many_steps() const;
ModelAction * get_next_backtrack();
bool too_many_steps() const;
ModelAction * get_next_backtrack();
@@
-186,11
+189,11
@@
private:
ModelAction * get_uninitialized_action(const ModelAction *curr) const;
action_list_t action_trace;
ModelAction * get_uninitialized_action(const ModelAction *curr) const;
action_list_t action_trace;
-
HashTable<int, Thread *, int
> thread_map;
+
SnapVector<Thread *
> thread_map;
/** Per-object list of actions. Maps an object (i.e., memory location)
* to a trace of all actions performed on the object. */
/** Per-object list of actions. Maps an object (i.e., memory location)
* to a trace of all actions performed on the object. */
- HashTable<const void *, action_list_t *, uintptr_t, 4>
* const
obj_map;
+ HashTable<const void *, action_list_t *, uintptr_t, 4> obj_map;
/** Per-object list of actions. Maps an object (i.e., memory location)
* to a trace of all actions performed on the object. */
/** Per-object list of actions. Maps an object (i.e., memory location)
* to a trace of all actions performed on the object. */