Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CoreAnimation's threads

Recently, I've been trying to find a way to analyze animations via GDB (for no other good reason than curiosity.) As I understand it, CoreAnimation runs it's animations in a separate thread(s). However, after suspending all active threads via GDB, my animation (specifically, the CAKeyFrameAnimation that UIImageView uses) were still running.

This leads me to believe that one of 2 things are happening:

1.) We're not privy to its thread(s) for whatever reason.

2.) I've missed something terribly obvious.

Any feedback on this issue is very much appreciated. Thanks.

like image 401
Sam Avatar asked May 06 '11 23:05

Sam


1 Answers

Your actual animations are handed off to the SpringBoard process. This is why they don't stop when you pause all threads in your process using the debugger. You can see further evidence of this by using the VM Watcher instrument to see shared VM regions being allocated when you create animations. In this regard, SpringBoard functions sort of like the window server on OS X.

like image 195
ipmcc Avatar answered Sep 28 '22 21:09

ipmcc