6 instantiations of ImmutableIdDispenser
System.Private.CoreLib (6)
System\Threading\ManagedThreadId.cs (6)
87return new ImmutableIdDispenser(null, null, 1, BitsPerNode, 1); 96return new ImmutableIdDispenser(this, null, _size + 1, checked(2 * _size + BitsPerNode), 1); 117left = new ImmutableIdDispenser(null, null, 1, ChildSize, 1); 123right = new ImmutableIdDispenser(null, null, 1, ChildSize, 1); 141return new ImmutableIdDispenser(left, right, _used + 1, _size, bitmap); 173return new ImmutableIdDispenser(left, right, _used - 1, _size, bitmap);
19 references to ImmutableIdDispenser
System.Private.CoreLib (19)
System\Threading\ManagedThreadId.cs (19)
23private readonly ImmutableIdDispenser? _left; // Child nodes 24private readonly ImmutableIdDispenser? _right; 33private ImmutableIdDispenser(ImmutableIdDispenser? left, ImmutableIdDispenser? right, int used, int size, uint bitmap) 80public static ImmutableIdDispenser Empty 91public ImmutableIdDispenser AllocateId(out int id) 100var left = _left; 101var right = _right; 144public ImmutableIdDispenser? RecycleId(int id) 152var left = _left; 153var right = _right; 201private static ImmutableIdDispenser? s_idDispenser; 210Interlocked.CompareExchange(ref s_idDispenser, ImmutableIdDispenser.Empty, null); 216var priorIdDispenser = Volatile.Read(ref s_idDispenser); 219var updatedIdDispenser = priorIdDispenser.AllocateId(out id); 220var interlockedResult = Interlocked.CompareExchange(ref s_idDispenser, updatedIdDispenser, priorIdDispenser); 238var priorIdDispenser = Volatile.Read(ref s_idDispenser); 241var updatedIdDispenser = s_idDispenser.RecycleId(id); 242var interlockedResult = Interlocked.CompareExchange(ref s_idDispenser, updatedIdDispenser, priorIdDispenser);