threadsafety improvements

This commit is contained in:
GHXX 2024-05-25 23:54:57 +02:00
parent c91714a6af
commit f20ba933dc

View File

@ -7,11 +7,17 @@ public class RequestContext : IDisposable {
public HttpListenerContext ListenerContext { get; }
public ReadOnlyDictionary<string, string> ParsedParameters { get; internal set; }
private StreamReader? reqReader;
public StreamReader ReqReader => reqReader ??= new(ListenerContext.Request.InputStream);
private TextReader? reqReader;
/// <summary>
/// THREADSAFE
/// </summary>
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;
/// <summary>
/// THREADSAFE
/// </summary>
public TextWriter RespWriter => respWriter ??= TextWriter.Synchronized(new StreamWriter(ListenerContext.Response.OutputStream) { NewLine = "\n" });
public RequestContext(HttpListenerContext listenerContext) {
ListenerContext = listenerContext;