projects
/
model-checker.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
model: add deadlock detection
[model-checker.git]
/
model.h
diff --git
a/model.h
b/model.h
index 63f45c723d4bdca402d50a2c82d4d0a62f3b5dc7..6d702b0d94604d281a0cdea8331eb669e15a3704 100644
(file)
--- a/
model.h
+++ b/
model.h
@@
-41,6
+41,11
@@
struct model_params {
/** @brief Maximum number of future values that can be sent to the same
* read */
int maxfuturevalues;
/** @brief Maximum number of future values that can be sent to the same
* read */
int maxfuturevalues;
+
+ /** @brief Only generate a new future value/expiration pair if the
+ * expiration time exceeds the existing one by more than the slop
+ * value */
+ unsigned int expireslop;
};
struct PendingFutureValue {
};
struct PendingFutureValue {
@@
-93,7
+98,7
@@
public:
Thread * get_thread(ModelAction *act) const;
thread_id_t get_next_id();
Thread * get_thread(ModelAction *act) const;
thread_id_t get_next_id();
- unsigned int get_num_threads();
+ unsigned int get_num_threads()
const
;
Thread * get_current_thread();
int switch_to_master(ModelAction *act);
Thread * get_current_thread();
int switch_to_master(ModelAction *act);
@@
-110,6
+115,7
@@
public:
void finish_execution();
bool isfeasibleprefix();
void set_assert() {asserted=true;}
void finish_execution();
bool isfeasibleprefix();
void set_assert() {asserted=true;}
+ bool is_deadlocked() const;
/** @brief Alert the model-checker that an incorrectly-ordered
* synchronization was made */
/** @brief Alert the model-checker that an incorrectly-ordered
* synchronization was made */