Commit Graph

13 Commits

Author SHA1 Message Date
e2db0eaca8 Fix a graph invariant violation on cycle detection 2021-05-27 20:31:00 +02:00
ebb8132cf8 Add a fuzz-test for the mutex ID's graph 2021-05-24 15:10:41 +02:00
d242ac5bc2 Use interior mutability for updating graph order 2021-05-24 14:49:48 +02:00
39b493a871 Merge hash maps in graph structures
This saves quite a few hash-map lookups which improves performance by
about 25%.
2021-05-24 14:49:48 +02:00
cca3cf7827 Fix unintentional exponential order ids 2021-05-24 14:49:48 +02:00
6ef9cb12f8 Implement basic fuzz testing for the digraph impl 2021-05-24 14:49:48 +02:00
50e99fd07a Rework dependency-tracking to be poison-free
Now new dependency edges that introduce cycles are simply rejected, not
affecting the overall graph. This simplifies the visible API and also
removes the need to restore the graph.
2021-05-16 14:16:51 +02:00
050ee27af6 Refactor MutexID to be self tracking
This avoids the need to implement Drop on every wrapped mutex, and
removes the need for unsafe code in this crate.
2021-05-02 11:55:04 +02:00
24c8453496 Document API and design 2021-04-21 20:21:46 +02:00
d3e146214f Replage edge lists with edge sets 2021-04-11 10:38:55 +02:00
c196589cfd Implement fast dynamic topsort algorithm 2021-03-27 17:20:37 +01:00
5f2e0e99a8 Use dedicated type for Mutex IDs
This should prevent tiny mistakes in handling the value.
2021-03-19 21:18:50 +01:00
df198ded5d Implement Mutex wrappers 2021-02-13 22:38:17 +01:00