It's poorly documented, but `performBlockAndWait:` is specifically meant to support that kind of recursive locking. I'll add a test verifying it.