2 * Written by Josh Dybnis and released to the public domain, as explained at
3 * http://creativecommons.org/licenses/publicdomain
7 * www.research.ibm.com/people/m/michael/ieeetpds-2004.pdf
13 #define STATIC_HAZ_PER_THREAD 2
15 typedef void (*free_t) (void *);
18 //static inline void haz_set (volatile haz_t *haz, void *x) { *haz = x; haz_t y = *haz; y = y; }
20 static inline void haz_set (volatile haz_t *haz, void *x) { *haz = x; __asm__ __volatile__("mfence"); }
22 haz_t *haz_get_static (int n);
23 void haz_register_dynamic (haz_t *haz);
24 void haz_unregister_dynamic (haz_t *haz);
25 void haz_defer_free (void *p, free_t f);