Skip to content

Commit

Permalink
Implement ISiloStatisticsChangeListener safely in grain
Browse files Browse the repository at this point in the history
  • Loading branch information
ReubenBond committed Sep 24, 2024
1 parent e192acb commit cc853ad
Showing 1 changed file with 9 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,19 @@ public void OnRehydrate(IRehydrationContext context)
}
}

public void RemoveSilo(SiloAddress silo)
void ISiloStatisticsChangeListener.RemoveSilo(SiloAddress silo)
{
_siloStatistics.Remove(silo);
_rebalancingStatistics.Remove(silo); // Remove that silo's rebalancing stats, as it has been removed.
GrainContext.Scheduler.QueueAction(() =>
{
_siloStatistics.Remove(silo);
_rebalancingStatistics.Remove(silo); // Remove that silo's rebalancing stats, as it has been removed.
});
}

public void SiloStatisticsChangeNotification(SiloAddress address, SiloRuntimeStatistics statistics)
void ISiloStatisticsChangeListener.SiloStatisticsChangeNotification(SiloAddress address, SiloRuntimeStatistics statistics)
{
_siloStatistics[address] = new(statistics.EnvironmentStatistics.MemoryUsageBytes, statistics.ActivationCount);
GrainContext.Scheduler.QueueAction(()
=> _siloStatistics[address] = new(statistics.EnvironmentStatistics.MemoryUsageBytes, statistics.ActivationCount));
}

public ValueTask<RebalancingReport> GetReport() => new(BuildReport());
Expand Down

0 comments on commit cc853ad

Please sign in to comment.