I've added a steal method to SharedLock in 8c7d99fc273d5d4 and use it to acquire lock when submitted to the queue / release at the end of the worker in c6cf05d8e3