The timer is a kernel object and if it is active it can fire even after its container RunLoop::Timer object is destroyed. So the destructor of IOSurfacePool needs to stop the collection timer if it is active.
rdar://94516877
Pull request: https://github.com/WebKit/WebKit/pull/1808