> On 6 May 2016, at 1:35 AM, Ken Thomases <k...@codeweavers.com> wrote: > > Well, you're not supposed to call -setNeedsDisplay: from a background thread, > either. > > From > <https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ThreadSafetySummary/ThreadSafetySummary.html#//apple_ref/doc/uid/10000057i-CH12-123427>: > > "If a secondary thread of an application wants to cause portions of the view > to be redrawn on the main thread, it must not do so using methods like > display, setNeedsDisplay:, setNeedsDisplayInRect:, or setViewsNeedDisplay:. > Instead, it should send a message to the main thread or call those methods > using the performSelectorOnMainThread:withObject:waitUntilDone: method > instead."
It strikes me that if Apple made -setNeedsDisplay: thread-safe, it would clear a huge number of potential pitfalls and bugs. The actual update would still be on main, but at least you could be sure that setting a control’s value didn’t need to be shunted. I wonder why this hasn’t been done? —Graham _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com