mirror of
https://github.com/Jetsparrow/antiantiswearingbot.git
synced 2026-01-21 07:16:08 +03:00
24 lines
754 B
C#
24 lines
754 B
C#
using System.Threading;
|
|
|
|
namespace Jetsparrow.Aasb;
|
|
|
|
public readonly ref struct ReadLockToken
|
|
{
|
|
ReaderWriterLockSlim Lock { get; }
|
|
public ReadLockToken(ReaderWriterLockSlim l) => (Lock = l).EnterReadLock();
|
|
public void Dispose() => Lock.ExitReadLock();
|
|
}
|
|
|
|
public readonly ref struct WriteLockToken
|
|
{
|
|
ReaderWriterLockSlim Lock { get; }
|
|
public WriteLockToken(ReaderWriterLockSlim l) => (Lock = l).EnterWriteLock();
|
|
public void Dispose() => Lock.ExitWriteLock();
|
|
}
|
|
|
|
public static class ReaderWriterLockSlimExtensions
|
|
{
|
|
public static ReadLockToken GetReadLockToken(this ReaderWriterLockSlim l) => new ReadLockToken(l);
|
|
public static WriteLockToken GetWriteLockToken(this ReaderWriterLockSlim l) => new WriteLockToken(l);
|
|
}
|