remove a bunch of locks
This commit is contained in:
parent
b3bf62b391
commit
d7b8664062
13 changed files with 126 additions and 143 deletions
|
@ -6,17 +6,23 @@ namespace TanksServer.Interactivity;
|
|||
|
||||
internal sealed class ClientScreenServer(
|
||||
ILogger<ClientScreenServer> logger,
|
||||
ILoggerFactory loggerFactory
|
||||
ILoggerFactory loggerFactory,
|
||||
BufferPool bufferPool
|
||||
) : WebsocketServer<ClientScreenServerConnection>(logger),
|
||||
IFrameConsumer
|
||||
{
|
||||
public Task HandleClientAsync(WebSocket socket, Player? player)
|
||||
=> base.HandleClientAsync(new ClientScreenServerConnection(
|
||||
{
|
||||
var connection = new ClientScreenServerConnection(
|
||||
socket,
|
||||
loggerFactory.CreateLogger<ClientScreenServerConnection>(),
|
||||
player
|
||||
));
|
||||
player,
|
||||
bufferPool
|
||||
);
|
||||
return base.HandleClientAsync(connection);
|
||||
}
|
||||
|
||||
public async Task OnFrameDoneAsync(GamePixelGrid gamePixelGrid, PixelGrid observerPixels)
|
||||
=> await ParallelForEachConnectionAsync(c => c.OnGameTickAsync(observerPixels, gamePixelGrid).AsTask());
|
||||
public Task OnFrameDoneAsync(GamePixelGrid gamePixelGrid, PixelGrid observerPixels)
|
||||
=> Connections.Select(c => c.OnGameTickAsync(observerPixels, gamePixelGrid))
|
||||
.WhenAll();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue