public Task LockAsync()

in RESTProxy/Models/AsyncLock.cs [60:76]


        public Task<IDisposable> LockAsync()
        {
            Task waitTask = this.semaphore.WaitAsync();
            if (waitTask.IsCompleted)
            {
                return this.releaser;
            }
            else
            {
                return waitTask.ContinueWith(
                    continuationFunction: (_, state) => (IDisposable)state,
                    state: this.releaser.Result,
                    cancellationToken: CancellationToken.None,
                    continuationOptions: TaskContinuationOptions.ExecuteSynchronously,
                    scheduler: TaskScheduler.Default);
            }
        }