Commit Graph

59 Commits

Author SHA1 Message Date
Benjamin Lerman
743cc83669 Add TracingRwLockUpgradableReadGuard wrapper for parking_lot 2022-05-03 10:16:27 +02:00
4faaae8d8f Merge pull request #10 from quisar/fix_locking_issues_in_lockapi 2022-05-02 08:32:13 +02:00
Benjamin Lerman
b78af9150d Fix a number of issues in the lockapi wrappers. 2022-05-02 08:20:23 +02:00
515930c0a2 Merge pull request #9 from quisar/prevent-reentrant-locking 2022-05-02 08:13:48 +02:00
Benjamin Lerman
b5a5ca16c3 Do not allow recursive locks. 2022-05-02 08:11:37 +02:00
aef99d4f65 Merge pull request #8 from quisar/fix_deref 2022-05-02 08:04:55 +02:00
Benjamin Lerman
6073c6c78d Fix Target for Deref of stdsync::TracingMutexGuard 2022-05-01 16:53:26 +02:00
cdd44f74fa Merge pull request #11 from bertptrs/fix-bitrot 2022-05-01 14:06:23 +02:00
38b3b226cc Move to edition 2021 altogether 2022-05-01 12:03:50 +02:00
3b9b908460 Correctly mark mutex reference as unused 2022-05-01 11:50:50 +02:00
ef421e20eb Deal with IntoIter deprecation 2022-05-01 11:50:37 +02:00
66576e5b0e Merge pull request #5 from bertptrs/benchmarking
Implement minimal benchmarking of dependency tracking
2021-07-10 22:17:44 +02:00
308af218e1 Implement minimal benchmarking of dependency tracking 2021-07-10 22:14:33 +02:00
79ed599a2f Merge pull request #3 from bertptrs/locking-api-support 2021-07-10 17:28:20 +02:00
680e335ccf Document new modules 2021-07-10 17:25:42 +02:00
17761af5a8 Add type aliases for mapped mutex guards 2021-07-10 13:05:41 +02:00
4c70d999d6 Create type aliases for parking_lot::RwLock 2021-07-10 12:17:35 +02:00
618a11f940 Implement a wrapper for parking_lot::Once 2021-05-27 22:19:57 +02:00
77cd603363 Implement minimal mutexes for parking_lot. 2021-05-27 22:00:37 +02:00
73b4c8b1af Minimal parking_lot support 2021-05-27 21:16:24 +02:00
b21a63e74b Implement RwLock-based traits for lockapi worker. 2021-05-27 21:16:24 +02:00
6a3cb83d01 Implement Mutex behaviour for lock_api 2021-05-27 21:16:24 +02:00
08cfb17234 Build all features on CI 2021-05-27 21:16:24 +02:00
536ee31138 Prepare for relesae v0.1.2 2021-05-27 21:13:24 +02:00
e2db0eaca8 Fix a graph invariant violation on cycle detection 2021-05-27 20:31:00 +02:00
158e5353bb Add missing guard type aliases 2021-05-24 20:28:49 +02:00
c4d211a923 Prepare for release v0.1.1 2021-05-24 15:40:30 +02:00
f524318bfe Only run CI for pushes to master and PRs. 2021-05-24 15:33:36 +02:00
917906e85e Update README 2021-05-24 15:30:56 +02:00
40e40f658c Merge pull request #1 from bertptrs/improve-digraph 2021-05-24 15:13:37 +02:00
ebb8132cf8 Add a fuzz-test for the mutex ID's graph 2021-05-24 15:10:41 +02:00
ca12ae6b0e Add changelog 2021-05-24 14:49:48 +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
f21631bfde Prepare for release v0.1.0 2021-05-16 15:30:32 +02:00
1ac8c09a82 Add Github Actions for CI 2021-05-16 15:01:10 +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
440693ab1e Fix unfortunate typo 2021-05-13 17:44:45 +02:00
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