From cc5780e6310d94aefce2f1df57c3aa9287ad8a17 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Wed, 17 Jun 2026 18:44:18 -0500 Subject: [PATCH 1/2] Fix exception handling for multiple Task-based event handlers --- src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs b/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs index 7f091bde..d8c93262 100644 --- a/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs +++ b/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs @@ -167,6 +167,11 @@ private Event GetOrCreateEvent(string name) var targetResult = targetSite.Invoke(targetSite.Target, context); + if (targetResult is Task task) + { + HandleTask(task); + } + // Do not consider default result as invocation result if (targetResult is null || targetResult == defaultResult) { From bc3f09c50c3df4f97856e1914f6055f08644a023 Mon Sep 17 00:00:00 2001 From: MrDave1999 Date: Fri, 19 Jun 2026 13:47:59 -0500 Subject: [PATCH 2/2] Remove HandleTask --- .../Events/EventDispatcher.cs | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs b/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs index d8c93262..8d8ffb88 100644 --- a/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs +++ b/src/SampSharp.OpenMp.Entities/Events/EventDispatcher.cs @@ -62,12 +62,7 @@ public void Invoke(string name, params ReadOnlySpan arguments) @event.Cache.TryAdd(NullValue.Instance, invoke); } - var result = invoke(arguments); - - if (result is Task task) - { - HandleTask(task); - } + invoke(arguments); } [return: NotNullIfNotNull(nameof(defaultValue))] @@ -105,11 +100,6 @@ public T InvokeAs(string name, T defaultValue, params ReadOnlySpan ar return taskT.Result; } - if (result is Task task) - { - HandleTask(task); - } - return defaultValue; }