From 33218af2933562b271ffcfe04134c61dbb885a11 Mon Sep 17 00:00:00 2001 From: Julian Chang Date: Wed, 12 Aug 2026 13:41:12 +0700 Subject: [PATCH] fix mod card toggle taking 20 years --- .../src/hooks/queries/mutations.rs | 40 ++++++++++++++----- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/packages/oneclient_app/src/hooks/queries/mutations.rs b/packages/oneclient_app/src/hooks/queries/mutations.rs index 03e732cc..1920fb88 100644 --- a/packages/oneclient_app/src/hooks/queries/mutations.rs +++ b/packages/oneclient_app/src/hooks/queries/mutations.rs @@ -11,21 +11,34 @@ use super::package_updates::PackageUpdatesQuery; use super::settings_profiles::{ ClusterProfileQuery, ClusterSettingsQuery, GameProfileQuery, ListNamedProfilesQuery, }; -use super::versions::{LoaderVersionsQuery, VersionsMetadataQuery}; + +async fn timed(step: &'static str, fut: impl std::future::Future) { + let started = std::time::Instant::now(); + fut.await; + tracing::debug!( + target: "oneclient_app::perf", + step, + ms = started.elapsed().as_millis() as u64, + "invalidate step" + ); +} pub async fn invalidate_cluster_queries() { - QueriesStorage::::try_invalidate_all().await; - QueriesStorage::::try_invalidate_all().await; - QueriesStorage::::try_invalidate_all().await; - QueriesStorage::::try_invalidate_all().await; - QueriesStorage::::try_invalidate_all().await; - QueriesStorage::::try_invalidate_all().await; - QueriesStorage::::try_invalidate_all().await; - QueriesStorage::::try_invalidate_all().await; + let started = std::time::Instant::now(); + timed("cluster_content", QueriesStorage::::try_invalidate_all()).await; + timed("bundle_overrides", QueriesStorage::::try_invalidate_all()).await; + timed("bundles_with_status", QueriesStorage::::try_invalidate_all()).await; + timed("clusters", QueriesStorage::::try_invalidate_all()).await; + timed("bundle_updates", QueriesStorage::::try_invalidate_all()).await; + timed("package_updates", QueriesStorage::::try_invalidate_all()).await; + tracing::debug!( + target: "oneclient_app::perf", + ms = started.elapsed().as_millis() as u64, + "cluster queries invalidated" + ); } /// Split out of [`invalidate_cluster_queries`] so an install can wait for just -/// this before dropping its busy flag the full sweep hits the network pub async fn invalidate_cluster_content_queries() { QueriesStorage::::try_invalidate_all().await; } @@ -84,6 +97,7 @@ impl MutationCapability for ClusterMutation { type Keys = ClusterAction; async fn run(&self, keys: &ClusterAction) -> Result<(), String> { + let started = std::time::Instant::now(); let state = crate::launcher::state().map_err(|e| e.to_string())?; let services = &state.services; let content = &state.services.content(); @@ -165,6 +179,12 @@ impl MutationCapability for ClusterMutation { } } }; + tracing::debug!( + target: "oneclient_app::perf", + ms = started.elapsed().as_millis() as u64, + ok = result.is_ok(), + "cluster action ran" + ); result.map_err(|e| e.to_string()) }