sorry, but golang defer is really slow