From b833771dc81970a04ec69fcc7e9323b2f4979a97 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] Refresh pending user data when an event is re-added Co-authored-by: Sekai <140012992+igettingit@users.noreply.github.com> --- src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs b/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs index 7185d8d..a162cde 100644 --- a/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs +++ b/src/SharpEmu.Libs/Kernel/KernelEventQueueCompatExports.cs @@ -1167,9 +1167,10 @@ public static class KernelEventQueueCompatExports } var key = (ident, filter); + var isExistingRegistration = events.ContainsKey(key); var isNewReadRegistration = filter == KernelEventFilterRead && - !events.ContainsKey(key); + !isExistingRegistration; events[(ident, filter)] = new KernelEventRegistration( ident, filter, @@ -1178,6 +1179,11 @@ public static class KernelEventQueueCompatExports lowWater, unchecked((ulong)Interlocked.Increment( ref _nextEventRegistrationGeneration))); + if (isExistingRegistration && + _pendingEvents.TryGetValue(handle, out var pending)) + { + _ = pending.UpdateUserData(ident, filter, userData); + } if (isNewReadRegistration) { _readEventRegistrationCount++;