using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading.Tasks; using Cpp2IlInjected; namespace System.Threading { /// Represents a lightweight alternative to that limits the number of threads that can access a resource or pool of resources concurrently. // Token: 0x02000326 RID: 806 [Token(Token = "0x2000326")] [ComVisible(false)] [DebuggerDisplay("Current Count = {m_currentCount}")] public class SemaphoreSlim : IDisposable { /// Initializes a new instance of the class, specifying the initial and maximum number of requests that can be granted concurrently. /// The initial number of requests for the semaphore that can be granted concurrently. /// The maximum number of requests for the semaphore that can be granted concurrently. /// /// is less than 0, or is greater than , or is equal to or less than 0. // Token: 0x06001EDD RID: 7901 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EDD")] [Address(RVA = "0xB44D50", Offset = "0xB43D50", VA = "0x180B44D50")] public SemaphoreSlim(int initialCount, int maxCount) { } /// Blocks the current thread until it can enter the . /// The current instance has already been disposed. // Token: 0x06001EDE RID: 7902 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EDE")] [Address(RVA = "0xB44C90", Offset = "0xB43C90", VA = "0x180B44C90")] public void Wait() { } /// Blocks the current thread until it can enter the , using a 32-bit signed integer that specifies the timeout. /// The number of milliseconds to wait, (-1) to wait indefinitely, or zero to test the state of the wait handle and return immediately. /// /// if the current thread successfully entered the ; otherwise, . /// /// is a negative number other than -1, which represents an infinite timeout -or- timeout is greater than . /// The has been disposed. // Token: 0x06001EDF RID: 7903 RVA: 0x00014F58 File Offset: 0x00013158 [Token(Token = "0x6001EDF")] [Address(RVA = "0xB44810", Offset = "0xB43810", VA = "0x180B44810")] public bool Wait(int millisecondsTimeout) { return default(bool); } /// Blocks the current thread until it can enter the , using a 32-bit signed integer that specifies the timeout, while observing a . /// The number of milliseconds to wait, (-1) to wait indefinitely, or zero to test the state of the wait handle and return immediately. /// The to observe. /// /// if the current thread successfully entered the ; otherwise, . /// /// was canceled. /// /// is a negative number other than -1, which represents an infinite timeout -or- timeout is greater than . /// The instance has been disposed, or the that created has been disposed. // Token: 0x06001EE0 RID: 7904 RVA: 0x00014F70 File Offset: 0x00013170 [Token(Token = "0x6001EE0")] [Address(RVA = "0xB44820", Offset = "0xB43820", VA = "0x180B44820")] public bool Wait(int millisecondsTimeout, CancellationToken cancellationToken) { return default(bool); } // Token: 0x06001EE1 RID: 7905 RVA: 0x00014F88 File Offset: 0x00013188 [Token(Token = "0x6001EE1")] [Address(RVA = "0xB44790", Offset = "0xB43790", VA = "0x180B44790")] private bool WaitUntilCountOrTimeout(int millisecondsTimeout, uint startTime, CancellationToken cancellationToken) { return default(bool); } /// Asynchronously waits to enter the . /// A task that will complete when the semaphore has been entered. /// The has been disposed. // Token: 0x06001EE2 RID: 7906 RVA: 0x00002082 File Offset: 0x00000282 [Token(Token = "0x6001EE2")] [Address(RVA = "0xB44670", Offset = "0xB43670", VA = "0x180B44670")] public Task WaitAsync() { return null; } /// Asynchronously waits to enter the , using a 32-bit signed integer to measure the time interval, while observing a . /// The number of milliseconds to wait, (-1) to wait indefinitely, or zero to test the state of the wait handle and return immediately. /// The to observe. /// A task that will complete with a result of if the current thread successfully entered the , otherwise with a result of . /// /// is a number other than -1, which represents an infinite timeout -or- timeout is greater than . /// The current instance has already been disposed. /// /// was canceled. // Token: 0x06001EE3 RID: 7907 RVA: 0x00002082 File Offset: 0x00000282 [Token(Token = "0x6001EE3")] [Address(RVA = "0xB44270", Offset = "0xB43270", VA = "0x180B44270")] public Task WaitAsync(int millisecondsTimeout, CancellationToken cancellationToken) { return null; } // Token: 0x06001EE4 RID: 7908 RVA: 0x00002082 File Offset: 0x00000282 [Token(Token = "0x6001EE4")] [Address(RVA = "0xB43D90", Offset = "0xB42D90", VA = "0x180B43D90")] private SemaphoreSlim.TaskNode CreateAndAddAsyncWaiter() { return null; } // Token: 0x06001EE5 RID: 7909 RVA: 0x00014FA0 File Offset: 0x000131A0 [Token(Token = "0x6001EE5")] [Address(RVA = "0xB441F0", Offset = "0xB431F0", VA = "0x180B441F0")] private bool RemoveAsyncWaiter(SemaphoreSlim.TaskNode task) { return default(bool); } // Token: 0x06001EE6 RID: 7910 RVA: 0x00002082 File Offset: 0x00000282 [Token(Token = "0x6001EE6")] [Address(RVA = "0xB44680", Offset = "0xB43680", VA = "0x180B44680")] private Task WaitUntilCountOrTimeoutAsync(SemaphoreSlim.TaskNode asyncWaiter, int millisecondsTimeout, CancellationToken cancellationToken) { return null; } /// Releases the object once. /// The previous count of the . /// The current instance has already been disposed. /// The has already reached its maximum size. // Token: 0x06001EE7 RID: 7911 RVA: 0x00014FB8 File Offset: 0x000131B8 [Token(Token = "0x6001EE7")] [Address(RVA = "0xB43F70", Offset = "0xB42F70", VA = "0x180B43F70")] public int Release() { return 0; } /// Releases the object a specified number of times. /// The number of times to exit the semaphore. /// The previous count of the . /// The current instance has already been disposed. /// /// is less than 1. /// The has already reached its maximum size. // Token: 0x06001EE8 RID: 7912 RVA: 0x00014FD0 File Offset: 0x000131D0 [Token(Token = "0x6001EE8")] [Address(RVA = "0xB43F80", Offset = "0xB42F80", VA = "0x180B43F80")] public int Release(int releaseCount) { return 0; } // Token: 0x06001EE9 RID: 7913 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EE9")] [Address(RVA = "0xB43F60", Offset = "0xB42F60", VA = "0x180B43F60")] private static void QueueWaiterTask(SemaphoreSlim.TaskNode waiterTask) { } /// Releases all resources used by the current instance of the class. // Token: 0x06001EEA RID: 7914 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EEA")] [Address(RVA = "0xB43EE0", Offset = "0xB42EE0", VA = "0x180B43EE0", Slot = "4")] public void Dispose() { } /// Releases the unmanaged resources used by the , and optionally releases the managed resources. /// /// to release both managed and unmanaged resources; to release only unmanaged resources. // Token: 0x06001EEB RID: 7915 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EEB")] [Address(RVA = "0xB43E60", Offset = "0xB42E60", VA = "0x180B43E60", Slot = "5")] protected virtual void Dispose(bool disposing) { } // Token: 0x06001EEC RID: 7916 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EEC")] [Address(RVA = "0xB43BF0", Offset = "0xB42BF0", VA = "0x180B43BF0")] private static void CancellationTokenCanceledEventHandler(object obj) { } // Token: 0x06001EED RID: 7917 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EED")] [Address(RVA = "0xB43CF0", Offset = "0xB42CF0", VA = "0x180B43CF0")] private void CheckDispose() { } // Token: 0x06001EEE RID: 7918 RVA: 0x00002082 File Offset: 0x00000282 [Token(Token = "0x6001EEE")] [Address(RVA = "0xB43F50", Offset = "0xB42F50", VA = "0x180B43F50")] private static string GetResourceString(string str) { return null; } // Token: 0x04001144 RID: 4420 [global::Cpp2IlInjected.FieldOffset(Offset = "0x10")] [Token(Token = "0x4001144")] private int m_currentCount; // Token: 0x04001145 RID: 4421 [global::Cpp2IlInjected.FieldOffset(Offset = "0x14")] [Token(Token = "0x4001145")] private readonly int m_maxCount; // Token: 0x04001146 RID: 4422 [global::Cpp2IlInjected.FieldOffset(Offset = "0x18")] [Token(Token = "0x4001146")] private int m_waitCount; // Token: 0x04001147 RID: 4423 [global::Cpp2IlInjected.FieldOffset(Offset = "0x20")] [Token(Token = "0x4001147")] private object m_lockObj; // Token: 0x04001148 RID: 4424 [global::Cpp2IlInjected.FieldOffset(Offset = "0x28")] [Token(Token = "0x4001148")] private ManualResetEvent m_waitHandle; // Token: 0x04001149 RID: 4425 [global::Cpp2IlInjected.FieldOffset(Offset = "0x30")] [Token(Token = "0x4001149")] private SemaphoreSlim.TaskNode m_asyncHead; // Token: 0x0400114A RID: 4426 [global::Cpp2IlInjected.FieldOffset(Offset = "0x38")] [Token(Token = "0x400114A")] private SemaphoreSlim.TaskNode m_asyncTail; // Token: 0x0400114B RID: 4427 [Token(Token = "0x400114B")] private static readonly Task s_trueTask; // Token: 0x0400114C RID: 4428 [Token(Token = "0x400114C")] private const int NO_MAXIMUM = 2147483647; // Token: 0x0400114D RID: 4429 [Token(Token = "0x400114D")] private static Action s_cancellationTokenCanceledEventHandler; // Token: 0x02000327 RID: 807 [Token(Token = "0x2000327")] private sealed class TaskNode : Task, IThreadPoolWorkItem { // Token: 0x06001EF0 RID: 7920 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EF0")] [Address(RVA = "0xB48820", Offset = "0xB47820", VA = "0x180B48820")] internal TaskNode() { } // Token: 0x06001EF1 RID: 7921 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EF1")] [Address(RVA = "0xB487E0", Offset = "0xB477E0", VA = "0x180B487E0", Slot = "4")] void IThreadPoolWorkItem.ExecuteWorkItem() { } // Token: 0x06001EF2 RID: 7922 RVA: 0x00002050 File Offset: 0x00000250 [Token(Token = "0x6001EF2")] [Address(RVA = "0x4242D0", Offset = "0x4232D0", VA = "0x1804242D0", Slot = "5")] void IThreadPoolWorkItem.MarkAborted(ThreadAbortException tae) { } // Token: 0x0400114E RID: 4430 [global::Cpp2IlInjected.FieldOffset(Offset = "0x58")] [Token(Token = "0x400114E")] internal SemaphoreSlim.TaskNode Prev; // Token: 0x0400114F RID: 4431 [global::Cpp2IlInjected.FieldOffset(Offset = "0x60")] [Token(Token = "0x400114F")] internal SemaphoreSlim.TaskNode Next; } } }