dc299f2f9a
Reimplement LazyMutexId using MaybeUninit
...
This shrinks the type by quite a bit and we don't lose state tracking as
the interal std::sync::Once already keeps track of that.
Also add a test for the new behaviour as this is a lot of unsafe code.
2021-05-13 16:55:41 +02:00
19973b3919
Implement a tracing wrapper for std::sync::Once.
2021-05-13 15:24:41 +02:00
2567a304d9
Initial README.
2021-05-13 13:57:36 +02:00
9e7f2d6a61
Missing Default implementation for TracingRwLock.
2021-05-08 17:10:56 +02:00
514a84f3b5
Minimal documentation for the complete API
2021-05-08 14:58:02 +02:00
eb7abc70ea
Derive Default more rather than implement it
2021-05-08 14:28: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
5638ebffd8
Simplify lock guard tracking
...
Instead of implementing the tracking everywhere, create a RAII-guard
that will track the state as it is held and dropped.
2021-03-20 20:43:05 +01:00
9b56deac26
Simplify code structure
2021-03-19 21:28:14 +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
e42d862f19
Implement tracing mutex for RwLock
2021-03-02 21:19:39 +01:00
0b6f8816f8
Split mutex-specific code to separate module.
2021-02-21 17:10:49 +01:00
6153af6426
Start tracking lock dependencies
2021-02-21 16:45:21 +01:00
df198ded5d
Implement Mutex wrappers
2021-02-13 22:38:17 +01:00
a3a8749f54
Implement very simple digraph with cycle detection
2021-02-13 20:48:34 +01:00