Problem: GC Rooted in thread
Lycaon
Posts: 5
First off, thanks to Red Gate for this app. It's just saved me so much headache I can't even begin to explain.
I've got a game server that's got a worker thread that processes incoming data, and after a client logs out, everything is cleaned up in .Dispose, but the profiler indicates that I still have the Client object GC rooted in the thread. A quick overview of the app:
I understand this isn't exactly a subject specific to the profiler, but I was hoping perhaps someone felt helpful enough to explain why it's tied up in the worker thread.
Thanks in advance.
I've got a game server that's got a worker thread that processes incoming data, and after a client logs out, everything is cleaned up in .Dispose, but the profiler indicates that I still have the Client object GC rooted in the thread. A quick overview of the app:
Sub IncomingQueueThread() Do Dim p As PendingPacket = m_Incoming.Dequeue ' This is a blocking queue which inherits the .NET Queue class ' p is processed here Loop Until m_Exit End Sub Class Client End Class Structure PendingPacket Public Client As Client, Packet As Packet End Structure
I understand this isn't exactly a subject specific to the profiler, but I was hoping perhaps someone felt helpful enough to explain why it's tied up in the worker thread.
Thanks in advance.
Comments