mirror of
https://github.com/par274/sharpemu.git
synced 2026-07-31 23:19:44 +08:00
Fix guest shutdown when VideoOut window is closed (#184)
Propagate Silk window close to runtime teardown so audio and CPU workers stop instead of continuing after the presentation window is dismissed.
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
// Copyright (C) 2026 SharpEmu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
namespace SharpEmu.HLE;
|
||||
|
||||
/// <summary>
|
||||
/// Lets host-facing libraries (VideoOut, AudioOut) request cooperative guest
|
||||
/// shutdown without taking a dependency on SharpEmu.Core.
|
||||
/// </summary>
|
||||
public static class HostSessionControl
|
||||
{
|
||||
private static Action<string>? _shutdownHandler;
|
||||
|
||||
public static void SetShutdownHandler(Action<string>? handler)
|
||||
{
|
||||
Volatile.Write(ref _shutdownHandler, handler);
|
||||
}
|
||||
|
||||
public static void RequestShutdown(string reason)
|
||||
{
|
||||
try
|
||||
{
|
||||
Volatile.Read(ref _shutdownHandler)?.Invoke(reason);
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Console.Error.WriteLine(
|
||||
$"[LOADER][WARN] Host shutdown handler failed: {exception.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user