Whoops, that was a mistake..I will correct that now.

@joshuawarner32 I have not, but I do know from experience that if you use a volatile in replace of the atomic implementation that the check then write failure will occur.  Causing some of the increments or decrements to fail.  Of course that failure is not _guaranteed_, but the more threads and the longer they loop it becomes very likely.  Which is why I personally tested this with much higher values than I actually committed in.