You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Scenario: in our generic diagnostics code for http service we want to dump thread stacks with corresponding http urls/ports. We save url/port via CallContext.LogicalSetData for incoming http requests and dispatch them to Task.Factory.StartNew. Request processing code can use async/await, so there can be more than one thread for each request. In the current version of this diagnostic we use some TaskScheduer-s magic to remember (url, managed thread id) pairs in static field. It would be much simpler to just dump all ClrRuntime.Threads having http url on ther LogicalCallContext.
The text was updated successfully, but these errors were encountered:
kant
added a commit
to kant/clrmd
that referenced
this issue
Dec 17, 2018
Sorry for the very long delay in responding. I think this is more of something that should be done by the consumer of ClrMD. I try to keep ClrMD down to just "building blocks", giving you the functionality to implement something like what you are describing, instead of having every small algorithm like that in ClrMD itself.
(Though if this is something you find impossible to implement on top of ClrMD, please let me know.)
Scenario: in our generic diagnostics code for http service we want to dump thread stacks with corresponding http urls/ports. We save url/port via CallContext.LogicalSetData for incoming http requests and dispatch them to Task.Factory.StartNew. Request processing code can use async/await, so there can be more than one thread for each request. In the current version of this diagnostic we use some TaskScheduer-s magic to remember (url, managed thread id) pairs in static field. It would be much simpler to just dump all ClrRuntime.Threads having http url on ther LogicalCallContext.
The text was updated successfully, but these errors were encountered: