Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion api_list.include.md
Original file line number Diff line number Diff line change
Expand Up @@ -964,6 +964,14 @@
* `bool TryPop<T>(T)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.stack-1.trypop?view=net-11.0)


#### Socket

* `ValueTask ConnectAsync(EndPoint, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.connectasync?view=net-11.0#system-net-sockets-socket-connectasync(system-net-endpoint-system-threading-cancellationtoken))
* `ValueTask DisconnectAsync(bool, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.disconnectasync?view=net-11.0#system-net-sockets-socket-disconnectasync(system-boolean-system-threading-cancellationtoken))
* `ValueTask<SocketReceiveFromResult> ReceiveFromAsync(Memory<byte>, SocketFlags, EndPoint, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.receivefromasync?view=net-11.0#system-net-sockets-socket-receivefromasync(system-memory((system-byte))-system-net-sockets-socketflags-system-net-endpoint-system-threading-cancellationtoken))
* `ValueTask<int> SendToAsync(ReadOnlyMemory<byte>, SocketFlags, EndPoint, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.sendtoasync?view=net-11.0#system-net-sockets-socket-sendtoasync(system-readonlymemory((system-byte))-system-net-sockets-socketflags-system-net-endpoint-system-threading-cancellationtoken))


#### Stopwatch

* `TimeSpan GetElapsedTime(long, long)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.stopwatch.getelapsedtime?view=net-11.0#system-diagnostics-stopwatch-getelapsedtime(system-int64-system-int64))
Expand Down Expand Up @@ -1340,4 +1348,3 @@
#### TaskCompletionSource

#### UnreachableException

31 changes: 19 additions & 12 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ This project uses features from the current stable SDK and C# language. As such
| net5.0 | 9.5KB | 208.0KB | +198.5KB | +9.0KB | +6.5KB | +9.0KB | +14.0KB |
| net6.0 | 10.0KB | 152.0KB | +142.0KB | +10.0KB | +7.0KB | +512bytes | +4.0KB |
| net7.0 | 10.0KB | 117.5KB | +107.5KB | +9.0KB | +5.5KB | +512bytes | +4.0KB |
| net8.0 | 9.5KB | 89.0KB | +79.5KB | +8.5KB | +512bytes | +1.0KB | +3.5KB |
| net8.0 | 9.5KB | 89.0KB | +79.5KB | +9.0KB | +512bytes | +1.0KB | +3.5KB |
| net9.0 | 9.5KB | 47.0KB | +37.5KB | +9.0KB | | +1.0KB | +3.5KB |
| net10.0 | 10.0KB | 23.5KB | +13.5KB | +9.0KB | | +512bytes | +3.5KB |
| net11.0 | 10.0KB | 18.5KB | +8.5KB | +9.0KB | | +512bytes | +3.5KB |
Expand All @@ -124,23 +124,23 @@ This project uses features from the current stable SDK and C# language. As such
| | Empty Assembly | With Polyfill | Diff | Ensure | ArgumentExceptions | StringInterpolation | Nullability |
|----------------|----------------|---------------|-----------|-----------|--------------------|---------------------|-------------|
| netstandard2.0 | 8.0KB | 436.4KB | +428.4KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| netstandard2.1 | 8.5KB | 363.0KB | +354.5KB | +16.7KB | +8.2KB | +14.4KB | +19.4KB |
| net461 | 8.5KB | 434.4KB | +425.9KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net462 | 7.0KB | 437.9KB | +430.9KB | +16.7KB | +8.2KB | +14.4KB | +19.4KB |
| netstandard2.1 | 8.5KB | 362.9KB | +354.4KB | +16.7KB | +8.2KB | +14.4KB | +19.4KB |
| net461 | 8.5KB | 434.3KB | +425.8KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net462 | 7.0KB | 437.8KB | +430.8KB | +16.7KB | +8.2KB | +14.4KB | +19.4KB |
| net47 | 7.0KB | 437.6KB | +430.6KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net471 | 8.5KB | 437.6KB | +429.1KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net472 | 8.5KB | 435.0KB | +426.5KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net48 | 8.5KB | 435.0KB | +426.5KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net481 | 8.5KB | 435.0KB | +426.5KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| netcoreapp2.0 | 9.0KB | 402.3KB | +393.3KB | +16.2KB | +8.2KB | +13.9KB | +18.9KB |
| netcoreapp2.1 | 9.0KB | 370.2KB | +361.2KB | +16.7KB | +8.7KB | +14.4KB | +19.4KB |
| netcoreapp2.2 | 9.0KB | 370.2KB | +361.2KB | +16.7KB | +8.7KB | +14.4KB | +19.4KB |
| netcoreapp3.0 | 9.5KB | 351.9KB | +342.4KB | +16.7KB | +8.2KB | +14.4KB | +19.4KB |
| netcoreapp2.1 | 9.0KB | 370.1KB | +361.1KB | +16.7KB | +8.7KB | +14.4KB | +19.4KB |
| netcoreapp2.2 | 9.0KB | 370.1KB | +361.1KB | +16.7KB | +8.7KB | +14.4KB | +19.4KB |
| netcoreapp3.0 | 9.5KB | 351.8KB | +342.3KB | +16.7KB | +8.2KB | +14.4KB | +19.4KB |
| netcoreapp3.1 | 9.5KB | 350.3KB | +340.8KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net5.0 | 9.5KB | 297.2KB | +287.8KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net6.0 | 10.0KB | 223.5KB | +213.5KB | +17.7KB | +8.7KB | +1.1KB | +4.7KB |
| net5.0 | 9.5KB | 297.2KB | +287.7KB | +16.7KB | +8.2KB | +13.9KB | +19.4KB |
| net6.0 | 10.0KB | 223.4KB | +213.4KB | +17.7KB | +8.7KB | +1.1KB | +4.7KB |
| net7.0 | 10.0KB | 170.2KB | +160.2KB | +16.6KB | +6.9KB | +1.1KB | +4.7KB |
| net8.0 | 9.5KB | 126.8KB | +117.3KB | +16.0KB | +811bytes | +1.6KB | +4.2KB |
| net8.0 | 9.5KB | 126.8KB | +117.3KB | +16.5KB | +811bytes | +1.6KB | +4.2KB |
| net9.0 | 9.5KB | 67.8KB | +58.3KB | +16.5KB | | +1.6KB | +4.2KB |
| net10.0 | 10.0KB | 35.8KB | +25.8KB | +16.5KB | | +1.1KB | +4.2KB |
| net11.0 | 10.0KB | 27.4KB | +17.4KB | +16.5KB | | +1.1KB | +4.2KB |
Expand Down Expand Up @@ -1495,6 +1495,14 @@ The class `Polyfill` includes the following extension methods:
* `bool TryPop<T>(T)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.stack-1.trypop?view=net-11.0)


#### Socket

* `ValueTask ConnectAsync(EndPoint, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.connectasync?view=net-11.0#system-net-sockets-socket-connectasync(system-net-endpoint-system-threading-cancellationtoken))
* `ValueTask DisconnectAsync(bool, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.disconnectasync?view=net-11.0#system-net-sockets-socket-disconnectasync(system-boolean-system-threading-cancellationtoken))
* `ValueTask<SocketReceiveFromResult> ReceiveFromAsync(Memory<byte>, SocketFlags, EndPoint, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.receivefromasync?view=net-11.0#system-net-sockets-socket-receivefromasync(system-memory((system-byte))-system-net-sockets-socketflags-system-net-endpoint-system-threading-cancellationtoken))
* `ValueTask<int> SendToAsync(ReadOnlyMemory<byte>, SocketFlags, EndPoint, CancellationToken)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.net.sockets.socket.sendtoasync?view=net-11.0#system-net-sockets-socket-sendtoasync(system-readonlymemory((system-byte))-system-net-sockets-socketflags-system-net-endpoint-system-threading-cancellationtoken))


#### Stopwatch

* `TimeSpan GetElapsedTime(long, long)` [reference](https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.stopwatch.getelapsedtime?view=net-11.0#system-diagnostics-stopwatch-getelapsedtime(system-int64-system-int64))
Expand Down Expand Up @@ -1870,8 +1878,7 @@ The class `Polyfill` includes the following extension methods:

#### TaskCompletionSource

#### UnreachableException
<!-- endInclude -->
#### UnreachableException<!-- endInclude -->


## References
Expand Down
29 changes: 29 additions & 0 deletions src/Consume/Consume.cs
Original file line number Diff line number Diff line change
Expand Up @@ -879,6 +879,19 @@ async Task UdpClient_Methods()
await connectedClient.SendAsync(data, CancellationToken.None);
await client.SendAsync(data, new(IPAddress.Loopback, 12345), CancellationToken.None);
await client.SendAsync(data, "localhost", 12345, CancellationToken.None);
#endif
}

async Task Socket_Methods()
{
using var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
await socket.ConnectAsync(new IPEndPoint(IPAddress.Loopback, 12345), CancellationToken.None);
await socket.DisconnectAsync(false, CancellationToken.None);
#if FeatureMemory
Memory<byte> receiveBuffer = new byte[3];
ReadOnlyMemory<byte> sendBuffer = new byte[] {1, 2, 3};
await socket.ReceiveFromAsync(receiveBuffer, SocketFlags.None, new IPEndPoint(IPAddress.Any, 0), CancellationToken.None);
await socket.SendToAsync(sendBuffer, SocketFlags.None, new IPEndPoint(IPAddress.Loopback, 12345), CancellationToken.None);
#endif
}
#endif
Expand Down Expand Up @@ -1410,6 +1423,22 @@ void Task_Methods()
Task.FromResult(0).ConfigureAwait(ConfigureAwaitOptions.ForceYielding);
}

async Task Task_ConfigureAwait_Options_Methods()
{
var action = () => { };
var task = new Task(action);
await task.ConfigureAwait(ConfigureAwaitOptions.None);
await task.ConfigureAwait(ConfigureAwaitOptions.ContinueOnCapturedContext);
await task.ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
await task.ConfigureAwait(ConfigureAwaitOptions.ForceYielding);

var func = () => 0;
var genericTask = new Task<int>(func);
await genericTask.ConfigureAwait(ConfigureAwaitOptions.None);
await genericTask.ConfigureAwait(ConfigureAwaitOptions.ContinueOnCapturedContext);
await genericTask.ConfigureAwait(ConfigureAwaitOptions.ForceYielding);
}

#if FeatureMemory
void Task_WhenAllAny_Span_Methods()
{
Expand Down
Loading
Loading