Tracking down this annoyance
Tracking down this annoyance
- Subject: Tracking down this annoyance
- From: Graham Cox <email@hidden>
- Date: Sun, 03 Jul 2016 12:45:48 +1000
In my app, I ‘m getting this message logged now and again:
CoreAnimation: warning, deleted thread with uncommitted CATransaction; created by:
0 QuartzCore 0x00007fff94e5c69a _ZN2CA11Transaction4pushEv + 318
1 QuartzCore 0x00007fff94e5c19a _ZN2CA11Transaction15ensure_implicitEv + 276
2 QuartzCore 0x00007fff94e62719 _ZN2CA5Layer13thread_flags_EPNS_11TransactionE + 37
3 QuartzCore 0x00007fff94e62668 _ZN2CA5Layer4markEPNS_11TransactionEjj + 64
4 QuartzCore 0x00007fff94e6412b _ZN2CA5Layer25set_needs_display_in_rectERK6CGRect + 333
5 QuartzCore 0x00007fff94e63fdc -[CALayer setNeedsDisplayInRect:] + 25
6 AppKit 0x00007fff9b0949ac -[_NSTiledLayer setNeedsDisplayInRect:] + 210
7 AppKit 0x00007fff9b14e4b8 -[_NSBackingLayerContents invalidateRect:] + 94
8 AppKit 0x00007fff9ae79249 _NSBackingLayerSetNeedsDisplayInRect + 160
9 AppKit 0x00007fff9ae791a3 -[_NSBackingLayer setNeedsDisplayInRect:] + 61
10 AppKit 0x00007fff9ae7998b -[NSView(NSInternal) _setLayerNeedsDisplayInViewRect:] + 606
11 AppKit 0x00007fff9ae4788e NSViewSetNeedsDisplayInRect + 945
12 AppKit 0x00007fff9ae474d6 -[NSView setNeedsDisplayInRect:] + 48
13 AppKit 0x00007fff9b1f10e3 -[_NSMirrorDocumentView documentViewNeedsDisplayInRect:] + 266
14 CoreFoundation 0x00007fff91fbabbc __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 12
15 CoreFoundation 0x00007fff91fbab4f ___CFXRegistrationPost_block_invoke + 63
This is what I get having turned on the CA_DEBUG_TRANSACTIONS, otherwise I get the first line without the stack trace.
It’s proving really awkward to track down - the problem is that a breakpoint on, say -[_NSMirrorDocumentView documentViewNeedsDisplayInRect:] is called all the time for many legitimate reasons, so I can’t pinpoint the one that leads to this message. It would be helpful if I coud see what the notification was that triggered this, but it’s NOT reported.
I’m guessing that this implies that a non-main thread has done something UI-ish that it shouldn’t, like posting a -setNeedsDisplay. The app does use plenty of threads, but I’ve been very careful to only do UI stuff on the main thread, so I’ve been unable to track it down simply by reviewing the code. Also, for all that, it seems benign - the app functions correctly AFAICS. I would like to get rid of the message though.
Can anyone suggest a way I can debug this with a more targeted approach?
—Graham
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden