Initial .NET Core 2.0 port

This commit is contained in:
JustArchi
2017-06-26 03:36:51 +02:00
parent abdab30c15
commit 0ecf6da44e
573 changed files with 52 additions and 496834 deletions

View File

@@ -160,12 +160,18 @@ namespace ArchiSteamFarm {
}
internal bool ReplaceIfNeededWith(ICollection<T> items) {
using (AsyncReaderWriterLock.UpgradeableReaderKey readerKey = Lock.UpgradeableReaderLock()) {
using (Lock.WriterLock()) {
if (HashSet.SetEquals(items)) {
return false;
}
ReplaceWith(items, readerKey);
HashSet.Clear();
foreach (T item in items) {
HashSet.Add(item);
}
HashSet.TrimExcess();
return true;
}
}
@@ -181,17 +187,5 @@ namespace ArchiSteamFarm {
HashSet.TrimExcess();
}
}
private void ReplaceWith(IEnumerable<T> items, AsyncReaderWriterLock.UpgradeableReaderKey readerKey) {
using (readerKey.Upgrade()) {
HashSet.Clear();
foreach (T item in items) {
HashSet.Add(item);
}
HashSet.TrimExcess();
}
}
}
}