Ported LowLevelLock from CoreRT, and moved LowLevelSpinWaiter to shared.The eventual goal is to have one mostly managed thread pool implementation that can be shared between runtimes, to ease maintenance going forward.Tried to avoid changing scheduling behavior, behavior of heuristics, etc., compared with that implementation. My goal was to get compatible behavior, compatible with diagnostics tools, and similar perf to the native implementation in coreclr.The IO thread pool is not being migrated in this change, and remains on the native side.Once it's had bake time and seen to be stable, at a reasonable time in the future the config flag would ideally be removed and the relevant parts of native implementation deleted. Change is off by default for now, and can be enabled with COMPlus_ThreadPool_UsePortableThreadPool=1. Enables using the portable thread pool with coreclr as opt-in.
0 Comments
Leave a Reply. |