Tatsuyuki Ishi (@ishitatsuyuki) commented about dlls/ntdll/unix/virtual.c:
+static BOOL try_exp_membarrier( void ) +{
- pthread_once(&membarrier_init_once, membarrier_init);
- if (!membarrier_exp_available)
return FALSE;
- return !membarrier( MEMBARRIER_CMD_PRIVATE_EXPEDITED, 0, 0 );
+}
+#else /* defined(__linux__) && defined(__NR_membarrier) */
+static BOOL try_exp_membarrier( void ) { return FALSE; }
+#endif /* defined(__linux__) && defined(__NR_membarrier) */
+static BOOL try_heavy_membarrier_fallback(void)
Let's rename this to something that doesn't mention `membarrier` to avoid confusion with the non-expedited membarrier() syscall which has unacceptable delays.