From what I can tell, both NSConcreteMapTable and NSConcreteHashMap provide no synchronization, just a mutation counter and some array pointer copying.  Do you think we should synchronize the entire `dispatch_apply()`, or once each iteration?  OSSpinLock is light enough that it shouldn't make a difference one way or the other.