47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
using System.Diagnostics;
|
|
|
|
namespace io.github.hatayama.uLoopMCP
|
|
{
|
|
public static class DomainReloadStateRegistry
|
|
{
|
|
private static readonly object SyncRoot = new object();
|
|
private static IDomainReloadStateProvider _provider;
|
|
|
|
public static void RegisterProvider(IDomainReloadStateProvider provider)
|
|
{
|
|
Debug.Assert(provider != null, "provider must not be null");
|
|
|
|
lock (SyncRoot)
|
|
{
|
|
_provider = provider;
|
|
}
|
|
}
|
|
|
|
public static bool IsDomainReloadInProgress()
|
|
{
|
|
IDomainReloadStateProvider provider;
|
|
lock (SyncRoot)
|
|
{
|
|
provider = _provider;
|
|
}
|
|
|
|
if (provider == null)
|
|
{
|
|
return false;
|
|
}
|
|
|
|
return provider.IsDomainReloadInProgress();
|
|
}
|
|
|
|
public static IDomainReloadStateProvider SwapProviderForTests(IDomainReloadStateProvider provider)
|
|
{
|
|
lock (SyncRoot)
|
|
{
|
|
IDomainReloadStateProvider previousProvider = _provider;
|
|
_provider = provider;
|
|
return previousProvider;
|
|
}
|
|
}
|
|
}
|
|
}
|