Given the functions is non-const and we are not trying to enforce thread safety on non-const functions I don't see a real need to use the compare exchange. If we did use it, it should be the strong form.