Skip to content

Commit 05ff18c

Browse files
authored
Add thread-safe locking to request logging in BlazorWebWasm (#123390)
1 parent d8da55b commit 05ff18c

File tree

1 file changed

+19
-3
lines changed
  • src/mono/wasm/testassets/BlazorWebWasm/BlazorWebWasm

1 file changed

+19
-3
lines changed

src/mono/wasm/testassets/BlazorWebWasm/BlazorWebWasm/Program.cs

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
var app = builder.Build();
1212

1313
var requestLogs = new List<BlazorWebWasmRequestLog>();
14+
var requestLogsLock = new object();
1415

1516
app.Use(async (context, next) =>
1617
{
@@ -21,7 +22,10 @@
2122
context.Request.Path,
2223
context.Response.StatusCode
2324
);
24-
requestLogs.Add(logEntry);
25+
lock (requestLogsLock)
26+
{
27+
requestLogs.Add(logEntry);
28+
}
2529
});
2630

2731
// Configure the HTTP request pipeline.
@@ -45,7 +49,19 @@
4549
.AddInteractiveWebAssemblyRenderMode()
4650
.AddAdditionalAssemblies(typeof(BlazorWebWasm.Client._Imports).Assembly);
4751

48-
app.MapGet("/request-logs", () => requestLogs);
49-
app.MapDelete("/request-logs", () => requestLogs.Clear());
52+
app.MapGet("/request-logs", () =>
53+
{
54+
lock (requestLogsLock)
55+
{
56+
return requestLogs.ToList();
57+
}
58+
});
59+
app.MapDelete("/request-logs", () =>
60+
{
61+
lock (requestLogsLock)
62+
{
63+
requestLogs.Clear();
64+
}
65+
});
5066

5167
app.Run();

0 commit comments

Comments
 (0)