From ef0dd785922309a2461c099bf64bde5764d66aa3 Mon Sep 17 00:00:00 2001 From: jtheisen Date: Wed, 25 Jan 2023 21:48:27 +0100 Subject: [PATCH] Fix concurrent list --- Moldinium/Misc/ConcurrentList.cs | 11 +++-------- SampleApp.AspNetMvc/SampleApp.AspNetMvc.csproj | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Moldinium/Misc/ConcurrentList.cs b/Moldinium/Misc/ConcurrentList.cs index 5a7f69f..df5c478 100644 --- a/Moldinium/Misc/ConcurrentList.cs +++ b/Moldinium/Misc/ConcurrentList.cs @@ -4,7 +4,7 @@ namespace Moldinium.Misc; -struct LockHelper : IDisposable +class LockHelper : IDisposable { SpinLock spinLock; @@ -36,11 +36,6 @@ public void Dispose() } } -ref struct LockHelperRef -{ - public ref int lockHelper; -} - /// /// A simple but likely quite inefficient implementation of a concurrent list that /// is meant only for demonstration purposes. @@ -49,7 +44,7 @@ public class ConcurrentList : IList { IImmutableList list = ImmutableList.Empty; - LockHelper locker; + LockHelper locker = new LockHelper(); public T this[int index] { @@ -70,7 +65,7 @@ public void Add(T item) { using var _ = locker.Lock(); - list.Add(item); + list = list.Add(item); } public void Clear() diff --git a/SampleApp.AspNetMvc/SampleApp.AspNetMvc.csproj b/SampleApp.AspNetMvc/SampleApp.AspNetMvc.csproj index f121ed4..ca1945a 100644 --- a/SampleApp.AspNetMvc/SampleApp.AspNetMvc.csproj +++ b/SampleApp.AspNetMvc/SampleApp.AspNetMvc.csproj @@ -1,7 +1,7 @@  - net6.0 + net7.0 enable enable