Jo Shields 3c1f479b9d Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
2015-04-07 09:35:12 +01:00

56 lines
1.2 KiB
C#

using System.Security;
namespace System.Threading
{
partial class ExecutionContext
{
internal static ExecutionContext Capture (ref StackCrawlMark stackMark, CaptureOptions options)
{
return Capture ((options & CaptureOptions.IgnoreSyncCtx) == 0, false);
}
internal static ExecutionContext FastCapture()
{
return Capture ();
}
[Flags]
internal enum CaptureOptions
{
None = 0x00,
IgnoreSyncCtx = 0x01, //Don't flow SynchronizationContext
OptimizeDefaultCase = 0x02, //Faster in the typical case, but can't show the result to users
// because they could modify the shared default EC.
// Use this only if you won't be exposing the captured EC to users.
}
private static readonly ExecutionContext s_dummyDefaultEC = new ExecutionContext();
static internal ExecutionContext PreAllocatedDefault
{
[SecuritySafeCritical]
get {
return s_dummyDefaultEC;
}
}
internal bool IsPreAllocatedDefault
{
get
{
return this == s_dummyDefaultEC;
}
}
}
[Serializable]
internal enum StackCrawlMark
{
LookForMe = 0,
LookForMyCaller = 1,
LookForMyCallersCaller = 2,
LookForThread = 3
}
}