From f20ba933dcacc31f18c1e72953925ef073acd570 Mon Sep 17 00:00:00 2001 From: GHXX Date: Sat, 25 May 2024 23:54:57 +0200 Subject: [PATCH] threadsafety improvements --- SimpleHttpServer/RequestContext.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/SimpleHttpServer/RequestContext.cs b/SimpleHttpServer/RequestContext.cs index 420b5fe..8f0b3b2 100644 --- a/SimpleHttpServer/RequestContext.cs +++ b/SimpleHttpServer/RequestContext.cs @@ -7,11 +7,17 @@ public class RequestContext : IDisposable { public HttpListenerContext ListenerContext { get; } public ReadOnlyDictionary ParsedParameters { get; internal set; } - private StreamReader? reqReader; - public StreamReader ReqReader => reqReader ??= new(ListenerContext.Request.InputStream); + private TextReader? reqReader; + /// + /// THREADSAFE + /// + public TextReader ReqReader => reqReader ??= TextReader.Synchronized(new StreamReader(ListenerContext.Request.InputStream)); - private StreamWriter? respWriter; - public StreamWriter RespWriter => respWriter ??= new(ListenerContext.Response.OutputStream) { NewLine = "\n" }; + private TextWriter? respWriter; + /// + /// THREADSAFE + /// + public TextWriter RespWriter => respWriter ??= TextWriter.Synchronized(new StreamWriter(ListenerContext.Response.OutputStream) { NewLine = "\n" }); public RequestContext(HttpListenerContext listenerContext) { ListenerContext = listenerContext;