You've already forked linux-packaging-mono
Imported Upstream version 4.3.2.467
Former-commit-id: 9c2cb47f45fa221e661ab616387c9cda183f283d
This commit is contained in:
82
external/referencesource/mscorlib/system/AppContext/AppContextSwitches.cs
vendored
Normal file
82
external/referencesource/mscorlib/system/AppContext/AppContextSwitches.cs
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
// ==++==
|
||||
//
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
//
|
||||
// ==--==
|
||||
|
||||
namespace System
|
||||
{
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
internal static class AppContextSwitches
|
||||
{
|
||||
private static int _noAsyncCurrentCulture;
|
||||
public static bool NoAsyncCurrentCulture
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
get
|
||||
{
|
||||
return GetCachedSwitchValue(AppContextDefaultValues.SwitchNoAsyncCurrentCulture, ref _noAsyncCurrentCulture);
|
||||
}
|
||||
}
|
||||
|
||||
private static int _throwExceptionIfDisposedCancellationTokenSource;
|
||||
public static bool ThrowExceptionIfDisposedCancellationTokenSource
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
get
|
||||
{
|
||||
return GetCachedSwitchValue(AppContextDefaultValues.SwitchThrowExceptionIfDisposedCancellationTokenSource, ref _throwExceptionIfDisposedCancellationTokenSource);
|
||||
}
|
||||
}
|
||||
|
||||
private static int _preserveEventListnerObjectIdentity;
|
||||
public static bool PreserveEventListnerObjectIdentity
|
||||
{
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
get
|
||||
{
|
||||
return GetCachedSwitchValue(AppContextDefaultValues.SwitchPreserveEventListnerObjectIdentity, ref _preserveEventListnerObjectIdentity);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Implementation details
|
||||
//
|
||||
|
||||
private static bool DisableCaching { get; set; }
|
||||
|
||||
static AppContextSwitches()
|
||||
{
|
||||
bool isEnabled;
|
||||
if (AppContext.TryGetSwitch(@"TestSwitch.LocalAppContext.DisableCaching", out isEnabled))
|
||||
{
|
||||
DisableCaching = isEnabled;
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static bool GetCachedSwitchValue(string switchName, ref int switchValue)
|
||||
{
|
||||
if (switchValue < 0) return false;
|
||||
if (switchValue > 0) return true;
|
||||
|
||||
return GetCachedSwitchValueInternal(switchName, ref switchValue);
|
||||
}
|
||||
|
||||
private static bool GetCachedSwitchValueInternal(string switchName, ref int switchValue)
|
||||
{
|
||||
bool isSwitchEnabled;
|
||||
AppContext.TryGetSwitch(switchName, out isSwitchEnabled);
|
||||
|
||||
if (DisableCaching)
|
||||
{
|
||||
return isSwitchEnabled;
|
||||
}
|
||||
|
||||
switchValue = isSwitchEnabled ? 1 /*true*/ : -1 /*false*/;
|
||||
return isSwitchEnabled;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user