@@ -7,6 +7,20 @@ namespace AgDatabaseMove
77
88 public class StripedBackupEqualityComparer : IEqualityComparer < BackupMetadata >
99 {
10+ private static StripedBackupEqualityComparer _instance = null ;
11+ private StripedBackupEqualityComparer ( ) { }
12+
13+ public static StripedBackupEqualityComparer Instance {
14+ get
15+ {
16+ if ( _instance == null )
17+ {
18+ _instance = new StripedBackupEqualityComparer ( ) ;
19+ }
20+ return _instance ;
21+ }
22+ }
23+
1024 public bool Equals ( BackupMetadata x , BackupMetadata y )
1125 {
1226 return x . LastLsn == y . LastLsn &&
@@ -37,8 +51,23 @@ public int GetHashCode(BackupMetadata obj)
3751 /// </summary>
3852 public class BackupMetadataEqualityComparer : IEqualityComparer < BackupMetadata >
3953 {
40- private readonly StripedBackupEqualityComparer _stripedBackupEqualityComparer = new StripedBackupEqualityComparer ( ) ;
41-
54+ private readonly StripedBackupEqualityComparer _stripedBackupEqualityComparer = StripedBackupEqualityComparer . Instance ;
55+
56+ private static BackupMetadataEqualityComparer _instance = null ;
57+ private BackupMetadataEqualityComparer ( ) { }
58+
59+ public static BackupMetadataEqualityComparer Instance
60+ {
61+ get
62+ {
63+ if ( _instance == null )
64+ {
65+ _instance = new BackupMetadataEqualityComparer ( ) ;
66+ }
67+ return _instance ;
68+ }
69+ }
70+
4271 public bool Equals ( BackupMetadata x , BackupMetadata y )
4372 {
4473 return _stripedBackupEqualityComparer . Equals ( x , y )
@@ -93,7 +122,7 @@ private StripedBackupSet(IEnumerable<BackupMetadata> stripedBackups)
93122 public static IEnumerable < StripedBackupSet > GetStripedBackupSetChain ( IEnumerable < BackupMetadata > backups )
94123 {
95124 var chain = backups
96- . GroupBy ( b => b , new StripedBackupEqualityComparer ( ) )
125+ . GroupBy ( b => b , StripedBackupEqualityComparer . Instance )
97126 . Select ( group => new StripedBackupSet ( group ) ) ;
98127 return chain ;
99128 }
0 commit comments