I don't see how you can ever pin problems with mutexes to callbacks. The author seems to confuse multi threading with callbacks. His example seems more like a mistake in recursion and improper structuring than something that went wrong because of callbacks. It's not the callbacks fault that you try to acquire the same lock twice.