Recently announced new distributed redis locks on Ruby (that works in advisory-locks manner with queue capabilities) reached the new verison 1.3.0 with a support for reentrant locks (when the lock is obtained again from the same process that is already hold this lock).