summaryrefslogtreecommitdiff
path: root/src/vm/threads.h
diff options
context:
space:
mode:
authorKoundinya Veluri <kouvel@users.noreply.github.com>2017-10-31 12:04:44 -0700
committerGitHub <noreply@github.com>2017-10-31 12:04:44 -0700
commit0bbce0cd3bf5f1e811e727d3922fade3b3b87a03 (patch)
treefb4da4b55371bbdec623b46f496f1fd008d12289 /src/vm/threads.h
parentedc9a0370aabf55ee5ad8693d0a46171208ff549 (diff)
downloadcoreclr-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.h72
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__