Commit ecf0bef4 authored by Jeremy Huddleston Sequoia's avatar Jeremy Huddleston Sequoia
Browse files

darwin: Eliminate a possible race condition while destroying a surface

Introduced by: c60ffd28

Signed-off-by: Jeremy Huddleston Sequoia's avatarJeremy Huddleston <jeremyhu@apple.com>
(cherry picked from commit d65bd195)
parent 60fa18b9
......@@ -207,9 +207,6 @@ apple_glx_surface_destroy(unsigned int uid)
d->types.surface.pending_destroy = true;
d->release(d);
/* apple_glx_drawable_find_by_uid returns a locked drawable */
d->unlock(d);
/*
* We release 2 references to the surface. One was acquired by
* the find, and the other was leftover from a context, or
......@@ -220,6 +217,9 @@ apple_glx_surface_destroy(unsigned int uid)
* to actually destroy it when the pending_destroy is processed
* by a glViewport callback (see apple_glx_context_update()).
*/
d->destroy(d);
if (!d->destroy(d)) {
/* apple_glx_drawable_find_by_uid returns a locked drawable */
d->unlock(d);
}
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment