Commit Graph

19 Commits

Author SHA1 Message Date
75df988d8a Document safety of unsafe Sync impl 2021-05-13 17:08:57 +02:00
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