lock & queue