atomic_fetch_sub_explicit
*ret = atomic_fetch_sub_explicit(&refcnt->val, 1, memory_order_acq_rel) - 1;
*ret = atomic_fetch_sub_explicit(&refcnt->val, 1, memory_order_release) - 1;
atomic_fetch_sub_explicit(object, operand, memory_order_seq_cst)