Init enter game

This commit is contained in:
Naruse
2025-06-14 11:15:32 +08:00
commit 6a03b39f07
568 changed files with 92872 additions and 0 deletions

View File

@@ -0,0 +1,36 @@
#if NEED_SOCKET_SHIM
using System;
using System.Net.Sockets;
using System.Threading.Tasks;
using System.Threading.Tasks.Sources;
namespace KcpSharp
{
internal class AwaitableSocketAsyncEventArgs : SocketAsyncEventArgs, IValueTaskSource
{
private ManualResetValueTaskSourceCore<bool> _mrvtsc =
new ManualResetValueTaskSourceCore<bool> { RunContinuationsAsynchronously = true };
void IValueTaskSource.GetResult(short token) => _mrvtsc.GetResult(token);
ValueTaskSourceStatus IValueTaskSource.GetStatus(short token) => _mrvtsc.GetStatus(token);
void IValueTaskSource.OnCompleted(Action<object?> continuation, object? state, short token, ValueTaskSourceOnCompletedFlags flags)
=> _mrvtsc.OnCompleted(continuation, state, token, flags);
protected override void OnCompleted(SocketAsyncEventArgs e)
{
_mrvtsc.SetResult(true);
}
public ValueTask WaitAsync()
{
return new ValueTask(this, _mrvtsc.Version);
}
public void Reset()
{
_mrvtsc.Reset();
}
}
}
#endif