On Feb 5, 2004, at 2:39 PM, Duncan Rose wrote:
There is definitely mention in the Apple docs that all threads have a run-loop created for them, and that any thread that *starts* the run-loop can process events. So I don't think all is lost for handling events safely in a multi-threaded application. It may be the case that multiple run-loops can only be run if no inputs are shared; I didn't get far enough in my experimentation to say either way.
There is a problem that the Window Server enqueues 'user' events for the main thread and no other. Other threads can create run loops and dequeue events, but under normal circumstances will never see 'user' events on their queues. The same holds true in Carbon as well.