Summary:
`TurnSequencer` uses inline assembly, which obviously won't work on ARM.
Guard said assembly to x86{,_64} targets.
Test Plan:
Added an always-false `static_assert` to the `ifdef` block, confirmed it gets
triggered (i.e., we're not removing the `pause` on x86_64).
Reviewed By: ngbronson@fb.com
Subscribers: folly-diffs@, yfeldblum, chalfant
FB internal diff:
D2069320
Signature: t1:
2069320:
1431663264:
3b3fb4282cf2b755f9b26c76b608b91ff665e226
#include <unistd.h>
#include <folly/detail/Futex.h>
+#include <folly/Portability.h>
namespace folly {
// the first effectSpinCutoff tries are spins, after that we will
// record ourself as a waiter and block with futexWait
if (tries < effectiveSpinCutoff) {
+#if defined(__i386__) || FOLLY_X64
asm volatile ("pause");
+#endif
continue;
}