well this doesn't prevent any other thread from changing the actual value. Since you only sync this part here the addWithoutBreaking method can still be called from other threads concurrently. I think you need a special method that does that. I just wonder how we can actually be below `0` this is almost certainly a bug no?