Skip to content

Commit 1c8da41

Browse files
authored
Add DefaultHttpContext._active for debugging (#29748)
1 parent 7e2ed4a commit 1c8da41

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/Http/Http/src/DefaultHttpContext.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ public sealed class DefaultHttpContext : HttpContext
3636
private DefaultConnectionInfo? _connection;
3737
private DefaultWebSocketManager? _websockets;
3838

39+
// This is field exists to make analyzing memory dumps easier.
40+
// https://github.com/dotnet/aspnetcore/issues/29709
41+
internal bool _active;
42+
3943
/// <summary>
4044
/// Initializes a new instance of the <see cref="DefaultHttpContext"/> class.
4145
/// </summary>
@@ -73,6 +77,7 @@ public void Initialize(IFeatureCollection features)
7377
_response.Initialize(revision);
7478
_connection?.Initialize(features, revision);
7579
_websockets?.Initialize(features, revision);
80+
_active = true;
7681
}
7782

7883
/// <summary>
@@ -85,6 +90,7 @@ public void Uninitialize()
8590
_response.Uninitialize();
8691
_connection?.Uninitialize();
8792
_websockets?.Uninitialize();
93+
_active = false;
8894
}
8995

9096
/// <summary>

src/Http/Http/test/DefaultHttpContextTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,22 @@ public async Task RequestServicesAreDisposedAsynOnCompleted()
264264
Assert.False(scope.DisposeCalled);
265265
}
266266

267+
[Fact]
268+
public void InternalActiveFlagIsSetAndUnset()
269+
{
270+
var context = new DefaultHttpContext();
271+
272+
Assert.False(context._active);
273+
274+
context.Initialize(new FeatureCollection());
275+
276+
Assert.True(context._active);
277+
278+
context.Uninitialize();
279+
280+
Assert.False(context._active);
281+
}
282+
267283
void TestAllCachedFeaturesAreNull(HttpContext context, IFeatureCollection features)
268284
{
269285
TestCachedFeaturesAreNull(context, features);

0 commit comments

Comments
 (0)