fix mutex_trylock bug
[c11tester.git] / context.h
index 862cda5..aa356a9 100644 (file)
--- a/context.h
+++ b/context.h
@@ -7,31 +7,19 @@
 #define __CONTEXT_H__
 
 #include <ucontext.h>
+#include <stdio.h>
 
-static inline int model_swapcontext(ucontext_t *oucp, ucontext_t *ucp)
-{
 #ifdef MAC
-       /*
-        * Mac OSX swapcontext() clobbers some registers, so use a hand-rolled
-        * version with {get,set}context(). We can avoid the same problem
-        * (where optimizations can break the following code) because we don't
-        * statically link with the C library
-        */
-
-       /* volatile, so that 'i' doesn't get promoted to a register */
-       volatile int i = 0;
 
-       getcontext(oucp);
+int model_swapcontext(ucontext_t *oucp, ucontext_t *ucp);
 
-       if (i == 0) {
-               i = 1;
-               setcontext(ucp);
-       }
+#else  /* !MAC */
 
-       return 0;
-#else
+static inline int model_swapcontext(ucontext_t *oucp, ucontext_t *ucp)
+{
        return swapcontext(oucp, ucp);
-#endif
 }
 
-#endif /* __CONTEXT_H__ */
+#endif /* !MAC */
+
+#endif /* __CONTEXT_H__ */