title: Dispatch semaphores and memory visibility
body: <p>If I signal a dispatch semaphore in one thread and wait for it in another thread, is the waiting thread guaranteed to see all changes made by the signalling thread upto a point? If so, is it synchronized at the signalling point or the waiting point?</p>