adapted the nq::shared_ptr to be working on gcc since all the atomic_ operations are not implemented in gcc