public async Task StartAsync() { this.ThrowIfDisposed(); this._cancellationToken.ThrowIfCancellationRequested(); SignalTask oldReadTask = (SignalTask)null; CancellationTokenSource cancellationTokenSource = (CancellationTokenSource)null; bool lockTaken = false; object obj; try { Monitor.Enter(obj = this._segmentLock, ref lockTaken); if (!this._isRunning) { if (this._abortTokenSource.IsCancellationRequested) { cancellationTokenSource = this._abortTokenSource; this._abortTokenSource = CancellationTokenSource.CreateLinkedTokenSource(this._cancellationToken); oldReadTask = this._readTask; this._readTask = new SignalTask(new Func <Task>(this.ReadSubList), this._abortTokenSource.Token); } this._isRunning = true; } else { goto label_15; } } finally { if (lockTaken) { Monitor.Exit(obj); } } await HlsPlaylistSegmentManager.CleanupReader(oldReadTask, cancellationTokenSource).ConfigureAwait(false); if (this._programStream.Segments != null && this._programStream.Segments.Count > 0) { this.UpdatePlaylist(); } ISegment segment = await AsyncEnumerableExtensions.FirstOrDefaultAsync <ISegment>(this.Playlist).ConfigureAwait(false); if (null == segment) { Debug.WriteLine("HlsPlaylistSegmentManager.StartAsync() no segments found"); throw new FileNotFoundException("Unable to find the first segment"); } this.ContentType = await this._programStream.GetContentTypeAsync(this._cancellationToken).ConfigureAwait(false); this.WebReader = WebReaderExtensions.CreateChild(this._programStream.WebReader, (Uri)null, ContentKind.AnyMedia, this.ContentType); label_15 :; }
public void Method() { var a0 = new OptimizedAsyncEnumerable <TestType>().FirstAsync(); var b0 = new OptimizedAsyncEnumerable <TestType>().FirstOrDefaultAsync(); var c0 = AsyncEnumerableExtensions.FirstAsync(new OptimizedAsyncEnumerable <TestType>()); var d0 = AsyncEnumerableExtensions.FirstOrDefaultAsync(new OptimizedAsyncEnumerable <TestType>()); var a1 = new TestType().SingleAsync(); var b1 = new TestType().SingleOrDefaultAsync(); var c1 = NotAsyncEnumerableExtensions.SingleAsync(new TestType()); var d1 = NotAsyncEnumerableExtensions.SingleOrDefaultAsync(new TestType()); var c2 = SingleAsync(new TestType()); var d2 = SingleOrDefaultAsync(new TestType()); }
public ValueTask <TestType> Test_SingleOrDefaultAsync_Method() => AsyncEnumerableExtensions.FirstOrDefaultAsync(new OptimizedAsyncEnumerable <TestType>());