소스 검색

Honoring cancellation in aggregates.

Bart De Smet 8 년 전
부모
커밋
1f4c74bee7

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Aggregate.cs

@@ -83,7 +83,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     acc = accumulator(acc, e.Current);
@@ -100,7 +100,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     acc = first ? e.Current : accumulator(acc, e.Current);

+ 3 - 3
Ix.NET/Source/System.Interactive.Async/AnyAll.cs

@@ -67,7 +67,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                return await e.MoveNextAsync().ConfigureAwait(false);
+                return await e.MoveNextAsync(cancellationToken).ConfigureAwait(false);
             }
         }
 
@@ -75,7 +75,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     if (!predicate(e.Current))
@@ -89,7 +89,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     if (predicate(e.Current))

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/AsyncEnumerableHelpers.cs

@@ -45,7 +45,7 @@ namespace System.Collections.Generic
             {
                 using (var en = source.GetAsyncEnumerator())
                 {
-                    if (await en.MoveNextAsync()
+                    if (await en.MoveNextAsync(cancellationToken)
                                 .ConfigureAwait(false))
                     {
                         const int DefaultCapacity = 4;
@@ -53,7 +53,7 @@ namespace System.Collections.Generic
                         arr[0] = en.Current;
                         var count = 1;
 
-                        while (await en.MoveNextAsync()
+                        while (await en.MoveNextAsync(cancellationToken)
                                        .ConfigureAwait(false))
                         {
                             if (count == arr.Length)

+ 20 - 20
Ix.NET/Source/System.Interactive.Async/Average.cs

@@ -385,7 +385,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -395,7 +395,7 @@ namespace System.Linq
                 long count = 1;
                 checked
                 {
-                    while (await e.MoveNextAsync()
+                    while (await e.MoveNextAsync(cancellationToken)
                                   .ConfigureAwait(false))
                     {
                         sum += e.Current;
@@ -411,7 +411,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -421,7 +421,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync()
+                            while (await e.MoveNextAsync(cancellationToken)
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -445,7 +445,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -455,7 +455,7 @@ namespace System.Linq
                 long count = 1;
                 checked
                 {
-                    while (await e.MoveNextAsync()
+                    while (await e.MoveNextAsync(cancellationToken)
                                   .ConfigureAwait(false))
                     {
                         sum += e.Current;
@@ -471,7 +471,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -481,7 +481,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync()
+                            while (await e.MoveNextAsync(cancellationToken)
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -505,7 +505,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -513,7 +513,7 @@ namespace System.Linq
 
                 var sum = e.Current;
                 long count = 1;
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     // There is an opportunity to short-circuit here, in that if e.Current is
@@ -531,7 +531,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -541,7 +541,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync()
+                            while (await e.MoveNextAsync(cancellationToken)
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -565,7 +565,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -573,7 +573,7 @@ namespace System.Linq
 
                 double sum = e.Current;
                 long count = 1;
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -588,7 +588,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -598,7 +598,7 @@ namespace System.Linq
                         long count = 1;
                         checked
                         {
-                            while (await e.MoveNextAsync()
+                            while (await e.MoveNextAsync(cancellationToken)
                                           .ConfigureAwait(false))
                             {
                                 v = e.Current;
@@ -622,7 +622,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
@@ -630,7 +630,7 @@ namespace System.Linq
 
                 var sum = e.Current;
                 long count = 1;
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     sum += e.Current;
@@ -645,7 +645,7 @@ namespace System.Linq
         {
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     var v = e.Current;
@@ -653,7 +653,7 @@ namespace System.Linq
                     {
                         var sum = v.GetValueOrDefault();
                         long count = 1;
-                        while (await e.MoveNextAsync()
+                        while (await e.MoveNextAsync(cancellationToken)
                                       .ConfigureAwait(false))
                         {
                             v = e.Current;

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/ElementAt.cs

@@ -60,7 +60,7 @@ namespace System.Linq
             {
                 using (var e = source.GetAsyncEnumerator())
                 {
-                    while (await e.MoveNextAsync()
+                    while (await e.MoveNextAsync(cancellationToken)
                                   .ConfigureAwait(false))
                     {
                         if (index == 0)
@@ -82,7 +82,7 @@ namespace System.Linq
             {
                 using (var e = source.GetAsyncEnumerator())
                 {
-                    while (await e.MoveNextAsync()
+                    while (await e.MoveNextAsync(cancellationToken)
                                   .ConfigureAwait(false))
                     {
                         if (index == 0)

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/First.cs

@@ -96,7 +96,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (await e.MoveNextAsync()
+                if (await e.MoveNextAsync(cancellationToken)
                            .ConfigureAwait(false))
                 {
                     return e.Current;
@@ -115,7 +115,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (await e.MoveNextAsync()
+                if (await e.MoveNextAsync(cancellationToken)
                            .ConfigureAwait(false))
                 {
                     return e.Current;

+ 1 - 1
Ix.NET/Source/System.Interactive.Async/ForEach.cs

@@ -100,7 +100,7 @@ namespace System.Linq
             var index = 0;
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     action(e.Current, checked(index++));

+ 2 - 2
Ix.NET/Source/System.Interactive.Async/Last.cs

@@ -102,7 +102,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     hasLast = true;
@@ -130,7 +130,7 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                while (await e.MoveNextAsync()
+                while (await e.MoveNextAsync(cancellationToken)
                               .ConfigureAwait(false))
                 {
                     hasLast = true;

+ 4 - 4
Ix.NET/Source/System.Interactive.Async/Single.cs

@@ -101,13 +101,13 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.NO_ELEMENTS);
                 }
                 var result = e.Current;
-                if (await e.MoveNextAsync()
+                if (await e.MoveNextAsync(cancellationToken)
                            .ConfigureAwait(false))
                 {
                     throw new InvalidOperationException(Strings.MORE_THAN_ONE_ELEMENT);
@@ -130,14 +130,14 @@ namespace System.Linq
 
             using (var e = source.GetAsyncEnumerator())
             {
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     return default(TSource);
                 }
 
                 var result = e.Current;
-                if (!await e.MoveNextAsync()
+                if (!await e.MoveNextAsync(cancellationToken)
                             .ConfigureAwait(false))
                 {
                     return result;