public async Task Run() { bool stillReading = true; do { NHContext context = new NHContext(this, stream, acceptor, logger); stillReading = await context.HandleRequest(serverAddress); if (!stillReading) { context.Abandon(); } } while (stillReading); logger.Log("Connection waiting for responses, " + networkEndpoint); lock (this) { finished = new TaskCompletionSource <bool>(); if (outstandingRequests == 0) { finished.SetResult(true); } } await finished.Task; logger.Log("Connection exiting for " + networkEndpoint); }
public NHServerResponse(Stream stream, NHContext c, ILogger logger) : base(stream, logger) { context = c; statusCode = -1; statusDescription = null; holdingResponseSlot = false; }
public NHServerRequest(NHContext c, ILogger logger) : base(logger) { context = c; }