示例#1
0
        public ClrmdThread(IThreadData data, ClrRuntime runtime, ClrAppDomain currentDomain)
        {
            if (data is null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            _helpers         = data.Helpers;
            Runtime          = runtime;
            Address          = data.Address;
            IsFinalizer      = data.IsFinalizer;
            OSThreadId       = data.OSThreadID;
            ManagedThreadId  = data.ManagedThreadID;
            CurrentAppDomain = currentDomain;
            LockCount        = data.LockCount;
            _threadState     = data.State;
            _exceptionHandle = data.ExceptionHandle;
            StackBase        = data.StackBase;
            StackLimit       = data.StackLimit;
            GcMode           = data.Preemptive ? GcMode.Preemptive : GcMode.Cooperative;
        }
示例#2
0
 public ThreadBuilder(SOSDac sos, ulong finalizer, IThreadHelpers helpers)
 {
     _sos       = sos;
     _finalizer = finalizer;
     Helpers    = helpers;
 }