TP_DONE
uintptr_t v = atomic_load_relaxed(&(tp)->tp_store[TP_DONE]); \
atomic_store_relaxed(&(tp)->tp_store[TP_DONE], v | 1); \
#define TP_GET_DONE(tp) (atomic_load_relaxed(&(tp)->tp_store[TP_DONE]) & 1)