@@ -62,34 +62,21 @@ private ClusterManifest EnsureCurrentManifestVersion(ClusterMembershipSnapshot c
6262 {
6363 var current = _current ;
6464 var membershipVersion = clusterMembership . Version . Value ;
65- if ( current . Version . Major > membershipVersion )
66- {
67- return current ;
68- }
69-
70- var synchronizedSilos = RemoveNonActiveSilos ( current . Silos , clusterMembership , out var modified ) ;
71- if ( current . Version . Major == membershipVersion && ! modified )
65+ if ( current . Version . Major >= membershipVersion )
7266 {
7367 return current ;
7468 }
7569
7670 lock ( _currentLock )
7771 {
7872 current = _current ;
79- if ( current . Version . Major > membershipVersion )
73+ if ( current . Version . Major >= membershipVersion )
8074 {
8175 return current ;
8276 }
8377
84- synchronizedSilos = RemoveNonActiveSilos ( current . Silos , clusterMembership , out modified ) ;
85- if ( current . Version . Major == membershipVersion && ! modified )
86- {
87- return current ;
88- }
89-
90- var version = current . Version . Major == membershipVersion
91- ? new MajorMinorVersion ( membershipVersion , current . Version . Minor + 1 )
92- : new MajorMinorVersion ( membershipVersion , 0 ) ;
78+ var synchronizedSilos = RemoveNonActiveSilos ( current . Silos , clusterMembership ) ;
79+ var version = new MajorMinorVersion ( membershipVersion , 0 ) ;
9380 var updated = CreateClusterManifest ( version , synchronizedSilos ) ;
9481 TryPublishManifest ( updated ) ;
9582 return _current ;
@@ -260,8 +247,7 @@ private bool TryPublishManifest(ClusterManifest manifest)
260247
261248 private static ImmutableDictionary < SiloAddress , GrainManifest > RemoveNonActiveSilos (
262249 ImmutableDictionary < SiloAddress , GrainManifest > silos ,
263- ClusterMembershipSnapshot clusterMembership ,
264- out bool modified )
250+ ClusterMembershipSnapshot clusterMembership )
265251 {
266252 ImmutableDictionary < SiloAddress , GrainManifest > . Builder ? builder = null ;
267253 foreach ( var entry in silos )
@@ -275,7 +261,6 @@ private static ImmutableDictionary<SiloAddress, GrainManifest> RemoveNonActiveSi
275261 builder . Remove ( entry . Key ) ;
276262 }
277263
278- modified = builder is not null ;
279264 return builder ? . ToImmutable ( ) ?? silos ;
280265 }
281266
0 commit comments