From a43408d2cc573bdc663502f07c532fad22638a6c Mon Sep 17 00:00:00 2001 From: Felipe Cardozo <fraifelipe@gmail.com> Date: Fri, 6 Sep 2024 15:50:05 -0300 Subject: [PATCH] chore: remove rwlock upgradable --- crates/fluvio-stream-dispatcher/src/metadata/local.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/crates/fluvio-stream-dispatcher/src/metadata/local.rs b/crates/fluvio-stream-dispatcher/src/metadata/local.rs index 35c2891877..685e4bbeb8 100644 --- a/crates/fluvio-stream-dispatcher/src/metadata/local.rs +++ b/crates/fluvio-stream-dispatcher/src/metadata/local.rs @@ -102,7 +102,7 @@ cfg_if::cfg_if! { use anyhow::{Result, anyhow, Context}; use async_channel::{Sender, Receiver, bounded}; - use async_lock::{RwLock, RwLockUpgradableReadGuard}; + use async_lock::RwLock; use futures_util::{stream::BoxStream, StreamExt}; use serde::{de::DeserializeOwned}; use tracing::{warn, debug, trace}; @@ -311,13 +311,15 @@ cfg_if::cfg_if! { async fn get_store<S: Spec + DeserializeOwned>(&self) -> Result<Arc<SpecStore>> { let key = S::LABEL; - let read = self.stores.upgradable_read().await; + let read = self.stores.read().await; Ok(match read.get(key) { Some(store) => store.clone(), None => { - let mut write = RwLockUpgradableReadGuard::upgrade(read).await; + drop(read); + let mut write = self.stores.write().await; let store = Arc::new(SpecStore::load::<S, _>(self.path.join(key)).await?); write.insert(key, store.clone()); + drop(write); store } })