avoiding locks in golang