diff options
author | Koundinya Veluri <kouvel@users.noreply.github.com> | 2017-10-31 12:04:44 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-31 12:04:44 -0700 |
commit | 0bbce0cd3bf5f1e811e727d3922fade3b3b87a03 (patch) | |
tree | fb4da4b55371bbdec623b46f496f1fd008d12289 /src/vm/threads.h | |
parent | edc9a0370aabf55ee5ad8693d0a46171208ff549 (diff) | |
download | coreclr-0bbce0cd3bf5f1e811e727d3922fade3b3b87a03.tar.gz coreclr-0bbce0cd3bf5f1e811e727d3922fade3b3b87a03.tar.bz2 coreclr-0bbce0cd3bf5f1e811e727d3922fade3b3b87a03.zip |
Clean up YieldProcessorNormalized (#14739)
Move YieldProcessorNormalized into separate files
Clean up YieldProcessorNormalized
Diffstat (limited to 'src/vm/threads.h')
-rw-r--r-- | src/vm/threads.h | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/vm/threads.h b/src/vm/threads.h index 05e01b3004..bae1db49f6 100644 --- a/src/vm/threads.h +++ b/src/vm/threads.h @@ -7476,76 +7476,4 @@ private: BOOL Debug_IsLockedViaThreadSuspension(); -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -// YieldProcessorNormalized - -extern int g_yieldsPerNormalizedYield; -extern int g_optimalMaxNormalizedYieldsPerSpinIteration; - -void InitializeYieldProcessorNormalized(); -void EnsureYieldProcessorNormalizedInitialized(); - -class YieldProcessorNormalizationInfo -{ -private: - int yieldsPerNormalizedYield; - -public: - YieldProcessorNormalizationInfo() : yieldsPerNormalizedYield(g_yieldsPerNormalizedYield) - { - } - - friend void YieldProcessorNormalized(const YieldProcessorNormalizationInfo &); -}; - -FORCEINLINE void YieldProcessorNormalized(const YieldProcessorNormalizationInfo &normalizationInfo) -{ - LIMITED_METHOD_CONTRACT; - - int n = normalizationInfo.yieldsPerNormalizedYield; - while (--n >= 0) - { - YieldProcessor(); - } -} - -class YieldProcessorWithBackOffNormalizationInfo -{ -private: - int yieldsPerNormalizedYield; - int optimalMaxNormalizedYieldsPerSpinIteration; - int optimalMaxYieldsPerSpinIteration; - -public: - YieldProcessorWithBackOffNormalizationInfo() - : yieldsPerNormalizedYield(g_yieldsPerNormalizedYield), - optimalMaxNormalizedYieldsPerSpinIteration(g_optimalMaxNormalizedYieldsPerSpinIteration), - optimalMaxYieldsPerSpinIteration(yieldsPerNormalizedYield * optimalMaxNormalizedYieldsPerSpinIteration) - { - } - - friend void YieldProcessorWithBackOffNormalized(const YieldProcessorWithBackOffNormalizationInfo &, unsigned int); -}; - -FORCEINLINE void YieldProcessorWithBackOffNormalized( - const YieldProcessorWithBackOffNormalizationInfo &normalizationInfo, - unsigned int spinIteration) -{ - LIMITED_METHOD_CONTRACT; - - int n; - if (spinIteration <= 30 && (1 << spinIteration) < normalizationInfo.optimalMaxNormalizedYieldsPerSpinIteration) - { - n = (1 << spinIteration) * normalizationInfo.yieldsPerNormalizedYield; - } - else - { - n = normalizationInfo.optimalMaxYieldsPerSpinIteration; - } - while (--n >= 0) - { - YieldProcessor(); - } -} - #endif //__threads_h__ |