* Graceful termination now shuts down the write end of the underlying socket, causing the remote to do the same first. We can then wait for background send/recv tasks to complete normally rather than requiring cancellation.
* IComputeBuffer now functions as a single handle to a shared reference-counted implementation, allowing the socket to acquire its own reference to the buffer and release it once done.
#preflight none
[CL 24995838 by Ben Marsh in ue5-main branch]
* Added core support for multiple readers on buffers.
* Move more functionality into ComputeBufferBase implementation.
* Added channel abstraction for socket-like communication.
#preflight none
[CL 24981072 by Ben Marsh in ue5-main branch]
Various other changes:
* Use a single buffer for IPC requests from the worker to host, rather than using the message passing system. Provides less overhead to porting to other languages.
* Rename RemoteServer to RemoteWorker.
#preflight none
[CL 24859082 by Ben Marsh in ue5-main branch]
* CreateMessage is now CreateMessageAsync, and blocks on a flush if it needs more space.
* Decreased default buffer sizes for compute handler.
#preflight none
[CL 24804925 by Ben Marsh in ue5-main branch]
* Add a sample app which uploads an application, streams values to it, and prints the output it echoes back to us.
* Add an in-memory transport which uses a C# pipeline to buffer data.
* Add a client implementation that launches a local Horde agent and connects directly to it.
* Add an IPC message channel to allow attaching new shared memory buffers from remote applications.
* Simplify the API for establishing connections.
#preflight none
[CL 24779164 by Ben Marsh in ue5-main branch]