X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=context.h;h=ea32d2f5edf3e21a4a95623899df07919eb1cf35;hb=c7a6544c3f19d8c4d71b82871c832a866f8dbb79;hp=862cda5e392451f19bb9b5cfe63680562dbf44bb;hpb=2b004336a919f74a5ca8f6d87ad5414360a949c7;p=model-checker.git diff --git a/context.h b/context.h index 862cda5..ea32d2f 100644 --- a/context.h +++ b/context.h @@ -8,30 +8,17 @@ #include -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 /* !MAC */ + #endif /* __CONTEXT_H__ */