8[DebuggerDisplay(
"IsValueCreated={IsValueCreated}, Value={ValueForDebugDisplay}, Count={ValuesCountForDebugDisplay}")]
105 int num =
ThreadLocal<T>.s_idManager.IdsThatDoNotTrackValuesCount;
116 value._slotArray =
null;
125 if (
value._next !=
null)
127 value._next._previous =
value._previous;
129 value._previous._next =
value._next;
160 int num = ~_idComplement;
171 int num = ~_idComplement;
175 value2._value =
value;
219 int num = ~_idComplement;
227 return array[num].Value !=
null;
238 int num = ~_idComplement;
302 num = ~_idComplement;
314 next._slotArray =
null;
315 slotArray[num].Value._value =
default(T);
326 return Value.ToString();
331 int num = ~_idComplement;
356 int num = ~_idComplement;
370 ts_finalizationHelper.SlotArray =
slotArray;
383 value2._value =
value;
397 linkedSlot._value =
value;
410 int num = ~_idComplement;
429 for (
int i = 0; i < table.Length; i++)
432 if (
value !=
null &&
value._slotArray !=
null)
434 value._slotArray =
array;
static void NotifyOfCrossThreadDependency()
static void SuppressFinalize(object obj)
static string ThreadLocal_ValuesNotAvailable
static string ThreadLocal_Disposed
static string ThreadLocal_Value_RecursiveCallsToValue
LinkedSlotVolatile[] SlotArray
FinalizationHelper(LinkedSlotVolatile[] slotArray)
volatile int _idsThatDoNotTrackAllValues
int IdsThatDoNotTrackValuesCount
int GetId(bool trackAllValues)
void ReturnId(int id, bool idTracksAllValues)
bool IdTracksAllValues(int id)
readonly List< byte > _ids
volatile LinkedSlot _next
volatile LinkedSlotVolatile[] _slotArray
LinkedSlot(LinkedSlotVolatile[] slotArray)
volatile LinkedSlot _previous
static readonly IdManager s_idManager
List< T >? ValuesForDebugDisplay
static LinkedSlotVolatile[] ts_slotArray
void SetValueSlow(T value, LinkedSlotVolatile[] slotArray)
static void GrowTable(ref LinkedSlotVolatile[] table, int minLength)
void CreateLinkedSlot(LinkedSlotVolatile[] slotArray, int id, T value)
override? string ToString()
int ValuesCountForDebugDisplay
volatile bool _initialized
List< T > GetValuesAsList()
ThreadLocal(bool trackAllValues)
static int GetNewTableSize(int minSize)
ThreadLocal(Func< T > valueFactory, bool trackAllValues)
static FinalizationHelper ts_finalizationHelper
ThreadLocal(Func< T > valueFactory)
virtual void Dispose(bool disposing)
void Initialize(Func< T > valueFactory, bool trackAllValues)
volatile LinkedSlot Value