In Objective-C blocks can be run asynchronously or synchronously, depending on the purpose. Just looking at an API method won't tell us which way will happen.
It would be nice if there was a convention that indicates whether a block is going to be dispatched to another thread or run in synch with the current thread.
Is there one?
Update: Other languages might use annotations. I'm thinking something along the lines of the NS_REQUIRES_NIL_TERMINATION that is used in va_args methods.