Yes it does; I added the break after we obtain the lock. This outer while is how we make it uninterruptible (`obtainLock()` might be interrupted inside redis).

I added tests.