// Assembly: mscorlib
// Full name: System.Threading.SemaphoreSlim

namespace System.Threading
{
public class SemaphoreSlim // TypeDefIndex: 3777
{
	// Fields
	type#20868 m_currentCount;
	type#20877 m_maxCount;
	type#20868 m_waitCount;
	type#23706 m_lockObj;
	type#22398 m_waitHandle;
	type#33559 m_asyncHead;
	type#33559 m_asyncTail;
	type#10485 s_trueTask;
	type#10485 s_falseTask;
	type#3278 s_cancellationTokenCanceledEventHandler;

	// Methods
	// RVA: -1
	public type#28660 .ctor(type#20867 initialCount, type#20867 maxCount) { }
	// RVA: -1
	public type#28660 Wait() { }
	// RVA: -1
	public type#15313 Wait(type#20867 millisecondsTimeout, type#15724 cancellationToken) { }
	// RVA: -1
	private type#15313 WaitUntilCountOrTimeout(type#20867 millisecondsTimeout, type#27917 startTime, type#15724 cancellationToken) { }
	// RVA: -1
	public type#27008 WaitAsync() { }
	// RVA: -1
	public type#10483 WaitAsync(type#27436 timeout) { }
	// RVA: -1
	public type#10483 WaitAsync(type#27436 timeout, type#15724 cancellationToken) { }
	// RVA: -1
	public type#10483 WaitAsync(type#20867 millisecondsTimeout, type#15724 cancellationToken) { }
	// RVA: -1
	private type#33558 CreateAndAddAsyncWaiter() { }
	// RVA: -1
	private type#15313 RemoveAsyncWaiter(type#33558 task) { }
	// RVA: -1
	private type#10483 WaitUntilCountOrTimeoutAsync(type#33558 asyncWaiter, type#20867 millisecondsTimeout, type#15724 cancellationToken) { }
	// RVA: -1
	public type#20867 Release() { }
	// RVA: -1
	public type#20867 Release(type#20867 releaseCount) { }
	// RVA: -1
	private static type#28660 QueueWaiterTask(type#33558 waiterTask) { }
	// RVA: -1
	public virtual type#28660 Dispose() { }
	// RVA: -1
	protected virtual type#28660 Dispose(type#15313 disposing) { }
	// RVA: -1
	private static type#28660 CancellationTokenCanceledEventHandler(type#23705 obj) { }
	// RVA: -1
	private type#28660 CheckDispose() { }
	// RVA: -1
	private static type#26576 GetResourceString(type#26576 str) { }
	// RVA: -1
	private static type#28660 .cctor() { }
}
}
