Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
io.gs2.csharp.sdk / Core / Util / AsyncLock.cs
Size: Mime:
using System;
using System.Threading.Tasks;

namespace Core.Util
{
    public class AsyncLock : IDisposable
    {
        private readonly System.Threading.SemaphoreSlim _semaphore = new(1, 1);

        public async Task<IDisposable> LockAsync()
        {
            await this._semaphore.WaitAsync();
            return this;
        }
        
        public void Dispose() {
            this._semaphore.Release();
        }
    }
}