Hi

On Thu, Jan 19, 2017 at 12:21 PM Gerd Hoffmann <kra...@redhat.com> wrote:

> On Mi, 2017-01-18 at 20:03 +0400, Marc-André Lureau wrote:
> > +    surface = qemu_console_surface(con);
> > +
> > +    /* FIXME: async save with coroutine? it would have to copy or
> > lock
> > +     * the surface. */
> > +    ppm_save(filename, surface, &err);
> > +
>
> No need to lock or copy.
>
> ppm_save() uses the pixman image (surface->image) only anyway, so
> changing it to accept a pixman image instead of the surface is easy.
>
> pixman images are reference counted, so you can just grab a reference
> using pixman_image_ref() and run with it, without risking it'll be
> released underneath your feet, then unref when done.
>
>
If you only ref, you could have the image being modified while it is being
saved asynchronously, this could result in tearing artefacts, no?

-- 
Marc-André Lureau

Reply via email to