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