Skip to content

Commit 2fe2bbb

Browse files
committed
Fix for windows
1 parent d1a986c commit 2fe2bbb

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

Include/internal/pycore_lock.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ extern "C" {
1414
#endif
1515

1616
#if defined(MS_WINDOWS)
17-
# include <emmintrin.h> // _mm_pause()
17+
# include <intrin.h> // _mm_pause(), __yield()
1818
#endif
1919

2020
//_Py_UNLOCKED is defined as 0 and _Py_LOCKED as 1 in Include/cpython/pylock.h
@@ -87,8 +87,10 @@ _Py_yield(void)
8787
__asm__ volatile ("yield" ::: "memory");
8888
#elif defined(__powerpc__) || defined(__ppc__) || defined(__PPC__)
8989
__asm__ volatile ("or 27,27,27" ::: "memory");
90-
#elif defined(MS_WINDOWS)
90+
#elif defined(_M_X64) || defined(_M_IX86)
9191
_mm_pause();
92+
#elif defined(_M_ARM64) || defined(_M_ARM)
93+
__yield();
9294
#elif defined(HAVE_SCHED_H)
9395
sched_yield();
9496
#endif

0 commit comments

Comments
 (0)