From 3d50643ab04ae812791e44bbc29d576eeaaac075 Mon Sep 17 00:00:00 2001 From: MBucari Date: Tue, 15 Jul 2025 11:48:19 -0600 Subject: [PATCH] Fix visible book counts being incorrect on startup If quick filters are applied on startup, a race condition was created between the initial library load book counting and the visible books counting. Only display results of the latest book count. --- Source/LibationWinForms/Form1.VisibleBooks.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Source/LibationWinForms/Form1.VisibleBooks.cs b/Source/LibationWinForms/Form1.VisibleBooks.cs index ac24d058..aeaf4be6 100644 --- a/Source/LibationWinForms/Form1.VisibleBooks.cs +++ b/Source/LibationWinForms/Form1.VisibleBooks.cs @@ -25,9 +25,17 @@ namespace LibationWinForms } private async void setLiberatedVisibleMenuItemAsync(object _, object __) => await Task.Run(setLiberatedVisibleMenuItem); + + private static DateTime lastVisibleCountUpdated; void setLiberatedVisibleMenuItem() { + //Assume that all calls to update arrive in order, + //Only display results of the latest book count. + var updaterTime = lastVisibleCountUpdated = DateTime.UtcNow; var libraryStats = LibraryCommands.GetCounts(productsDisplay.GetVisible()); + if (updaterTime < lastVisibleCountUpdated) + return; + this.UIThreadSync(() => { if (libraryStats.HasPendingBooks)