projects
/
c11tester.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix mutex_trylock bug
[c11tester.git]
/
waitobj.h
diff --git
a/waitobj.h
b/waitobj.h
index 9b4aead2bc52581e1788461d8cb5d225579999cf..36d95796461fa8e73718d9de125762cb5d2c353e 100644
(file)
--- a/
waitobj.h
+++ b/
waitobj.h
@@
-17,7
+17,8
@@
public:
void add_waiting_for(thread_id_t other, FuncNode * node, int dist);
void add_waited_by(thread_id_t other);
void add_waiting_for(thread_id_t other, FuncNode * node, int dist);
void add_waited_by(thread_id_t other);
- bool remove_waiting_for(thread_id_t other, FuncNode * node);
+ bool remove_waiting_for_node(thread_id_t other, FuncNode * node);
+ void remove_waiting_for(thread_id_t other);
void remove_waited_by(thread_id_t other);
thrd_id_set_t * getWaitingFor() { return &waiting_for; }
void remove_waited_by(thread_id_t other);
thrd_id_set_t * getWaitingFor() { return &waiting_for; }
@@
-25,10
+26,12
@@
public:
node_set_t * getTargetNodes(thread_id_t tid);
int lookup_dist(thread_id_t tid, FuncNode * target);
node_set_t * getTargetNodes(thread_id_t tid);
int lookup_dist(thread_id_t tid, FuncNode * target);
- int lookup_dist(thread_id_t other_tid);
- void reset();
- void print_waiting_for();
+ bool incr_counter(thread_id_t tid);
+
+ void clear_waiting_for();
+
+ void print_waiting_for(bool verbose = false);
void print_waited_by();
SNAPSHOTALLOC
void print_waited_by();
SNAPSHOTALLOC
@@
-44,6
+47,10
@@
private:
SnapVector<dist_map_t *> thrd_dist_maps;
SnapVector<node_set_t *> thrd_target_nodes;
SnapVector<dist_map_t *> thrd_dist_maps;
SnapVector<node_set_t *> thrd_target_nodes;
+ /* Count the number of actions for threads that
+ * this thread is waiting for */
+ SnapVector<uint32_t> thrd_action_counters;
+
dist_map_t * getDistMap(thread_id_t tid);
};
dist_map_t * getDistMap(thread_id_t tid);
};