title: safety of using cocoa's performSelectorOnMainThread thousands of times
body: <p>In my app I have a worker thread which sits around doing a lot of processing. While it's processing, it sends updates to the main thread which uses the information to update GUI elements. This is done with <code>performSelectorOnMainThread</code>. For simplicity in the code, there are no restrictions on these updates and they get sent at a high rate (hundreds or thousands per second), and <code>waitUntilDone</code> is <code>false</code>. The methods called simply take the variable and copy it to a private member of the view controller. Some of them update the GUI directly (because I'm lazy!). Once every few seconds, the worker thread calls <code>performSelectorOnMainThread</code> with <code>waitUntilDone</code> set to <code>true</code> (this is related to saving the output of the current calculation batch).</p>
  
  <p>My question: is this a safe use of <code>performSelectorOnMainThread</code>? I ask because I recently encountered a problem where my displayed values stopped updating, despite the background thread continuing to work without issues (and produce the correct output). Since they are fed values this way, I wondered if it might have hit a limit in the number of messages. I already checked the usual suspects (overflows, leaks, etc) and everything's clean. I haven't been able to reproduce the problem, however.</p>