From 02644abf19d5928d7da970b6a92870469ff12304 Mon Sep 17 00:00:00 2001 From: ParantezTech <12572227+par274@users.noreply.github.com> Date: Tue, 6 Oct 2026 13:44:49 +0300 Subject: [PATCH] [Kernel] Keep every end-of-pipe interrupt event Co-authored-by: Sekai <140012992+igettingit@users.noreply.github.com> --- .../Kernel/KernelEventQueueCompatExports.cs | 31 ++----------------- 1 file changed, 2 insertions(+), 29 deletions(-) diff --git a/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs b/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs index a162cde..061afd8 100644 --- a/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs +++ b/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs @@ -1419,22 +1419,13 @@ public static class KernelEventQueueCompatExports _pendingEvents[handle] = queue; } - // Keep each interrupt as a separate event. Limit growth when the queue is not read. - var queuedEvent = new KernelQueuedEvent( + queue.AddLast(new KernelQueuedEvent( registration.Ident, registration.Filter, registration.Flags, 1, data, - registration.UserData); - if (CountPendingEvents(queue, registration.Ident, registration.Filter) < 256) - { - queue.AddLast(queuedEvent); - } - else - { - QueueOrUpdateEvent(queue, queuedEvent); - } + registration.UserData)); (wakeQueues ??= []).Add(state); triggeredCount++; @@ -1662,24 +1653,6 @@ public static class KernelEventQueueCompatExports } } - private static int CountPendingEvents( - KernelEventDeque queue, - ulong ident, - short filter) - { - var count = 0; - for (var i = 0; i < queue.Count; i++) - { - var pending = queue[i]; - if (pending.Ident == ident && pending.Filter == filter) - { - count++; - } - } - - return count; - } - private static void PollReadEvents(object? state) { _ = state;