fix: cache invalidation under concurrent queries
The configuration cache is a part of the executor's runtime. Previously, quech query was holding a immutable borrow of the runtime, while cache invalidation tried to get a mutable borrow (apply_config). As a result, the cache invalidation always failed to mutably borrow the runtime. Current commit fixes the issue by wrapping the configuration in a reference cell. As a result, apply_config now immutably borrows the runtime and don't fail on this step.
Showing
- sbroad-benches/src/engine.rs 28 additions, 15 deletionssbroad-benches/src/engine.rs
- sbroad-cartridge/src/api.rs 7 additions, 0 deletionssbroad-cartridge/src/api.rs
- sbroad-cartridge/src/api/helper.rs 7 additions, 2 deletionssbroad-cartridge/src/api/helper.rs
- sbroad-cartridge/src/api/invalidate_cached_schema.rs 16 additions, 6 deletionssbroad-cartridge/src/api/invalidate_cached_schema.rs
- sbroad-cartridge/src/cartridge/router.rs 34 additions, 18 deletionssbroad-cartridge/src/cartridge/router.rs
- sbroad-cartridge/src/cartridge/storage.rs 27 additions, 13 deletionssbroad-cartridge/src/cartridge/storage.rs
- sbroad-core/src/executor.rs 2 additions, 1 deletionsbroad-core/src/executor.rs
- sbroad-core/src/executor/engine.rs 17 additions, 5 deletionssbroad-core/src/executor/engine.rs
- sbroad-core/src/executor/engine/mock.rs 25 additions, 15 deletionssbroad-core/src/executor/engine/mock.rs
Loading
Please register or sign in to comment