From b680d18bee7727ae5e9b445664247cc83fa7eb6c Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Fri, 18 Nov 2022 16:20:07 +0100 Subject: [PATCH] added Ueb04 Csharp and fixed problems --- ADIS_Csharp/ADIS_Csharp.sln | 6 ++++++ ADIS_Csharp/Sync-Ueb04-NestedMonitor/BlackHole.cs | 8 ++------ ADIS_Csharp/Sync-Ueb04-NestedMonitor/NotifyingQueue.cs | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/ADIS_Csharp/ADIS_Csharp.sln b/ADIS_Csharp/ADIS_Csharp.sln index a8b8565..f991017 100644 --- a/ADIS_Csharp/ADIS_Csharp.sln +++ b/ADIS_Csharp/ADIS_Csharp.sln @@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sync-Ueb02-Latch", "Sync-Ue EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sync-Ueb03-WaitPool", "Sync-Ueb03-WaitPool\Sync-Ueb03-WaitPool.csproj", "{6041729C-8528-49A7-B335-1720B46DEFD1}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Sync-Ueb04-NestedMonitor", "Sync-Ueb04-NestedMonitor\Sync-Ueb04-NestedMonitor.csproj", "{839AB456-68F3-4ABC-A0EE-95F08FEFC033}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +35,10 @@ Global {6041729C-8528-49A7-B335-1720B46DEFD1}.Debug|Any CPU.Build.0 = Debug|Any CPU {6041729C-8528-49A7-B335-1720B46DEFD1}.Release|Any CPU.ActiveCfg = Release|Any CPU {6041729C-8528-49A7-B335-1720B46DEFD1}.Release|Any CPU.Build.0 = Release|Any CPU + {839AB456-68F3-4ABC-A0EE-95F08FEFC033}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {839AB456-68F3-4ABC-A0EE-95F08FEFC033}.Debug|Any CPU.Build.0 = Debug|Any CPU + {839AB456-68F3-4ABC-A0EE-95F08FEFC033}.Release|Any CPU.ActiveCfg = Release|Any CPU + {839AB456-68F3-4ABC-A0EE-95F08FEFC033}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/ADIS_Csharp/Sync-Ueb04-NestedMonitor/BlackHole.cs b/ADIS_Csharp/Sync-Ueb04-NestedMonitor/BlackHole.cs index 5d8f0f0..5c14fbb 100644 --- a/ADIS_Csharp/Sync-Ueb04-NestedMonitor/BlackHole.cs +++ b/ADIS_Csharp/Sync-Ueb04-NestedMonitor/BlackHole.cs @@ -7,14 +7,10 @@ namespace Sync_Ueb04_NestedMonitor private NotifyingQueue queue = new NotifyingQueue(); public void Put(String thing) { - lock (this) { - queue.Enqueue(thing); - } + queue.Enqueue(thing); } public String Get() { - lock (this) { - return queue.Dequeue(); - } + return queue.Dequeue(); } } } diff --git a/ADIS_Csharp/Sync-Ueb04-NestedMonitor/NotifyingQueue.cs b/ADIS_Csharp/Sync-Ueb04-NestedMonitor/NotifyingQueue.cs index 8de3ad6..f3fbab6 100644 --- a/ADIS_Csharp/Sync-Ueb04-NestedMonitor/NotifyingQueue.cs +++ b/ADIS_Csharp/Sync-Ueb04-NestedMonitor/NotifyingQueue.cs @@ -20,7 +20,7 @@ namespace Sync_Ueb04_NestedMonitor public T Dequeue() { lock (this) { - if (head == tail) { + while (head == tail) { Monitor.Wait(this); } tail++;