@xiangli-cmu No problem. There are a few gotchas in Go that I've noticed. Another thing to watch out for is that defer only works at the function level and not the block level. Also, defers get run LIFO (last in, first out) which is important if you decide to execute multiple locks in the same function.