SkiaUnrefQueue should be empty at destruction time. If the queue is nonempty,
then there will be a pending drain task that will hold a reference to the
queue. The queue can only be destructed after the drain completes and the
reference is dropped.
Drains must only be done on the queue's task runner thread, which may not be
the thread where the queue is destructed.
Flow is a simple compositor based on Skia that the Flutter engine uses to cache
recoded paint commands and pixels generated from those recordings. Flow runs on
the GPU thread and uploads information to the GPU.