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.
This commit is contained in:
MBucari 2025-07-15 11:48:19 -06:00
parent abd18d74b0
commit 3d50643ab0

View File

@ -25,9 +25,17 @@ namespace LibationWinForms
} }
private async void setLiberatedVisibleMenuItemAsync(object _, object __) private async void setLiberatedVisibleMenuItemAsync(object _, object __)
=> await Task.Run(setLiberatedVisibleMenuItem); => await Task.Run(setLiberatedVisibleMenuItem);
private static DateTime lastVisibleCountUpdated;
void setLiberatedVisibleMenuItem() 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()); var libraryStats = LibraryCommands.GetCounts(productsDisplay.GetVisible());
if (updaterTime < lastVisibleCountUpdated)
return;
this.UIThreadSync(() => this.UIThreadSync(() =>
{ {
if (libraryStats.HasPendingBooks) if (libraryStats.HasPendingBooks)