Skip to content

Memory leak  #89

Open
Open
@NikeKey

Description

@NikeKey

When i use https://github.com/chronoxor/CSharpServer
Test With
Repeat: 10
Thread/Connect: 100
Message send and echo: 10

image
On screen - ChatSession never Disposed.
(But I try manual call Dispose, and GC.Collect)
Then if disassembly in VS2022:
session.Dispose:

    public sealed override void Dispose()
    {
        Dispose(A_0: true);
        GC.SuppressFinalize(this);
        GC.KeepAlive(this);
    }

I think problem in this: GC.KeepAlive(this); - autogenerate because
in C++ code -> CreateSession
return std::make_shared ;
this bad idea for c# (and other code for dispose)
https://habr.com/ru/articles/509004/

I looked in .Net Momory Profiler leak this:
image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions