use idiomatic safe form for FUNLOCK macro