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;