Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit cd27eed

Browse files
committed
Change all async APIs to use ConfigAwait()
1 parent 35571f8 commit cd27eed

File tree

8 files changed

+29
-21
lines changed

8 files changed

+29
-21
lines changed

src/ServiceStack.Text/DefaultMemory.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ private static async Task WriteAsyncAndReturn(Stream stream, byte[] bytes, int o
473473
{
474474
try
475475
{
476-
await stream.WriteAsync(bytes, offset, count, token);
476+
await stream.WriteAsync(bytes, offset, count, token).ConfigAwait();
477477
}
478478
finally
479479
{
@@ -492,11 +492,12 @@ public override async Task WriteAsync(Stream stream, ReadOnlyMemory<byte> value,
492492
value.CopyTo(bytes);
493493
if (stream is MemoryStream ms)
494494
{
495+
// ReSharper disable once MethodHasAsyncOverloadWithCancellation
495496
ms.Write(bytes, 0, value.Length);
496497
}
497498
else
498499
{
499-
await stream.WriteAsync(bytes, 0, value.Length, token);
500+
await stream.WriteAsync(bytes, 0, value.Length, token).ConfigAwait();
500501
}
501502
}
502503
finally
@@ -534,7 +535,7 @@ public override async Task<object> DeserializeAsync(Stream stream, Type type,
534535
if (stream.CanSeek)
535536
stream.Position = 0;
536537

537-
ms = await stream.CopyToNewMemoryStreamAsync();
538+
ms = await stream.CopyToNewMemoryStreamAsync().ConfigAwait();
538539
}
539540

540541
return Deserialize(ms, fromPool, type, deserializer);

src/ServiceStack.Text/Env.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ private static bool IsInAppContainer
301301
private static extern int GetCurrentApplicationUserModelId(ref uint applicationUserModelIdLength, byte[] applicationUserModelId);
302302
#endif
303303

304-
public static bool ContinueOnCapturedContext = false;
304+
public const bool ContinueOnCapturedContext = false;
305305

306306
[MethodImpl(MethodImplOptions.AggressiveInlining)]
307307
public static ConfiguredTaskAwaitable ConfigAwait(this Task task) =>
@@ -310,5 +310,13 @@ public static ConfiguredTaskAwaitable ConfigAwait(this Task task) =>
310310
[MethodImpl(MethodImplOptions.AggressiveInlining)]
311311
public static ConfiguredTaskAwaitable<T> ConfigAwait<T>(this Task<T> task) =>
312312
task.ConfigureAwait(ContinueOnCapturedContext);
313+
314+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
315+
public static ConfiguredValueTaskAwaitable ConfigAwait(this ValueTask task) =>
316+
task.ConfigureAwait(ContinueOnCapturedContext);
317+
318+
[MethodImpl(MethodImplOptions.AggressiveInlining)]
319+
public static ConfiguredValueTaskAwaitable<T> ConfigAwait<T>(this ValueTask<T> task) =>
320+
task.ConfigureAwait(ContinueOnCapturedContext);
313321
}
314322
}

src/ServiceStack.Text/HttpUtils.cs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Net;
88
using System.Text;
99
using System.Threading.Tasks;
10+
using ServiceStack.Text;
1011

1112
namespace ServiceStack
1213
{
@@ -597,12 +598,12 @@ public static async Task<string> SendStringToUrlAsync(this string url, string me
597598
}
598599
}
599600

600-
using (var webRes = await webReq.GetResponseAsync())
601+
using (var webRes = await webReq.GetResponseAsync().ConfigAwait())
601602
{
602603
responseFilter?.Invoke((HttpWebResponse)webRes);
603604
using (var stream = webRes.GetResponseStream())
604605
{
605-
return await stream.ReadToEndAsync();
606+
return await stream.ReadToEndAsync().ConfigAwait();
606607
}
607608
}
608609
}
@@ -720,7 +721,7 @@ public static async Task<byte[]> SendBytesToUrlAsync(this string url, string met
720721
}
721722
}
722723

723-
var webRes = await webReq.GetResponseAsync();
724+
var webRes = await webReq.GetResponseAsync().ConfigAwait();
724725
responseFilter?.Invoke((HttpWebResponse)webRes);
725726

726727
using (var stream = webRes.GetResponseStream())
@@ -837,13 +838,11 @@ public static async Task<Stream> SendStreamToUrlAsync(this string url, string me
837838

838839
if (requestBody != null)
839840
{
840-
using (var req = PclExport.Instance.GetRequestStream(webReq))
841-
{
842-
await requestBody.CopyToAsync(req);
843-
}
841+
using var req = PclExport.Instance.GetRequestStream(webReq);
842+
await requestBody.CopyToAsync(req).ConfigAwait();
844843
}
845844

846-
var webRes = await webReq.GetResponseAsync();
845+
var webRes = await webReq.GetResponseAsync().ConfigAwait();
847846
responseFilter?.Invoke((HttpWebResponse)webRes);
848847

849848
var stream = webRes.GetResponseStream();

src/ServiceStack.Text/JsonSerializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ public static Task<object> DeserializeFromStreamAsync(Type type, Stream stream)
202202

203203
public static async Task<T> DeserializeFromStreamAsync<T>(Stream stream)
204204
{
205-
var obj = await MemoryProvider.Instance.DeserializeAsync(stream, typeof(T), DeserializeFromSpan);
205+
var obj = await MemoryProvider.Instance.DeserializeAsync(stream, typeof(T), DeserializeFromSpan).ConfigAwait();
206206
return (T)obj;
207207
}
208208

src/ServiceStack.Text/NetCoreMemory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public override async Task WriteAsync(Stream stream, ReadOnlyMemory<byte> value,
131131
if (stream is MemoryStream ms)
132132
ms.Write(value.Span);
133133
else
134-
await stream.WriteAsync(value, token);
134+
await stream.WriteAsync(value, token).ConfigAwait();
135135
}
136136

137137
public override object Deserialize(Stream stream, Type type, DeserializeStringSpanDelegate deserializer)
@@ -162,7 +162,7 @@ public override async Task<object> DeserializeAsync(Stream stream, Type type, De
162162
if (stream.CanSeek)
163163
stream.Position = 0;
164164

165-
ms = await stream.CopyToNewMemoryStreamAsync();
165+
ms = await stream.CopyToNewMemoryStreamAsync().ConfigAwait();
166166
}
167167

168168
return Deserialize(ms, fromPool, type, deserializer);

src/ServiceStack.Text/PclExport.Net45.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ public override void WriteLine(string format, params object[] args)
156156

157157
public override async Task WriteAndFlushAsync(Stream stream, byte[] bytes)
158158
{
159-
await stream.WriteAsync(bytes, 0, bytes.Length);
160-
await stream.FlushAsync();
159+
await stream.WriteAsync(bytes, 0, bytes.Length).ConfigAwait();
160+
await stream.FlushAsync().ConfigAwait();
161161
}
162162

163163
public override void AddCompression(WebRequest webReq)

src/ServiceStack.Text/StreamExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -477,14 +477,14 @@ public static async Task WriteToAsync(this MemoryStream stream, Stream output, E
477477
{
478478
try
479479
{
480-
await output.WriteAsync(stream.GetBuffer(), 0, (int) stream.Length, token);
480+
await output.WriteAsync(stream.GetBuffer(), 0, (int) stream.Length, token).ConfigAwait();
481481
}
482482
catch (UnauthorizedAccessException)
483483
{
484484
Tracer.Instance.WriteWarning("MemoryStream in WriteToAsync() wasn't created with a publiclyVisible:true byte[] bufffer, falling back to slow impl");
485485

486486
var bytes = stream.ToArray();
487-
await output.WriteAsync(bytes, 0, bytes.Length, token);
487+
await output.WriteAsync(bytes, 0, bytes.Length, token).ConfigAwait();
488488
}
489489
}
490490

@@ -511,7 +511,7 @@ public static MemoryStream CopyToNewMemoryStream(this Stream stream)
511511
public static async Task<MemoryStream> CopyToNewMemoryStreamAsync(this Stream stream)
512512
{
513513
var ms = MemoryStreamFactory.GetStream();
514-
await stream.CopyToAsync(ms);
514+
await stream.CopyToAsync(ms).ConfigAwait();
515515
ms.Position = 0;
516516
return ms;
517517
}

src/ServiceStack.Text/TypeSerializer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,7 @@ public static Task<object> DeserializeFromStreamAsync(Type type, Stream stream)
226226

227227
public static async Task<T> DeserializeFromStreamAsync<T>(Stream stream)
228228
{
229-
var obj = await MemoryProvider.Instance.DeserializeAsync(stream, typeof(T), DeserializeFromSpan);
229+
var obj = await MemoryProvider.Instance.DeserializeAsync(stream, typeof(T), DeserializeFromSpan).ConfigAwait();
230230
return (T)obj;
231231
}
232232

0 commit comments

Comments
 (0)