First, great project!
I'm currently using quick_cache in one of my component, which is multithreaded and has multiple corner cases which may deadlock. I am using shuttle to test for thread interleaving issues, a tool similar to loom but probabilistic.
While it works pretty well, unfortunately it clashes with quick_cache as it requires the application to switch to their drop-in std::sync primitives, which causes some conditions not to be detected (e.g. two shuttle threads trying to acquire a lock to the same shard, leading to a deadlock).
Would you be okay with having a feature flag "shuttle" to switch the std::sync primitives for quick_cache?
This issue is more to understand if it would be acceptable for the project authors to have such a feature. In that case, I may also submit a PR for that.
First, great project!
I'm currently using quick_cache in one of my component, which is multithreaded and has multiple corner cases which may deadlock. I am using shuttle to test for thread interleaving issues, a tool similar to
loombut probabilistic.While it works pretty well, unfortunately it clashes with quick_cache as it requires the application to switch to their drop-in std::sync primitives, which causes some conditions not to be detected (e.g. two shuttle threads trying to acquire a lock to the same shard, leading to a deadlock).
Would you be okay with having a feature flag "shuttle" to switch the std::sync primitives for quick_cache?
This issue is more to understand if it would be acceptable for the project authors to have such a feature. In that case, I may also submit a PR for that.