A reserve lock is available for situations where you intend to update an object but you need to minimize the length of time the object is locked with an exclusive lock.
When you place a reserve lock on an object, other processes attempting to acquire an exclusive lock or a reserve lock on that same object wait until the reserve lock is relinquished, but those processes attempting to acquire a shared lock succeed.