Lock with fairness