hazard pointers almost working