I think it would have to be synchronization for each addition to the result,

```objc
OSSpinLockLock(&lock);
[result setObject:mapBlock(objects[i]) forKey:keys[i]];
OSSpinLockUnlock(&lock);
```