[cairo] Condition variables
Behdad Esfahbod
behdad at behdad.org
Thu Sep 20 10:59:30 PDT 2007
On Wed, 2007-09-19 at 11:17 -0400, Chris Wilson wrote:
> The second is a
> little more difficult as it involves a surface being removed from the
> solid-surface-cache and thus destroyed, whilst simultaneously it is
> being detached from the display due to a XCloseDisplay. The only sane
> way I can see of avoiding this race is by stalling the
> _cairo_xlib_surface_finish() whilst the display is being closed (after
> which the resources are marked as freed and so no work is queued from
> the _finish()). So in order to stall the function I require a
> condition
> variable. I've attached a patch for the pthread case, but I don't know
> how trivial condvars are on other architectures (e.g. GLib's
> implementation for win32 is definitely not trivial!).
Hi Chris,
I'm not sure I understand. What's wrong with locking a shared
per-display mutex in both _cairo_xlib_surface_finish() and XCloseDisplay
callback?
--
behdad
http://behdad.org/
"Those who would give up Essential Liberty to purchase a little
Temporary Safety, deserve neither Liberty nor Safety."
-- Benjamin Franklin, 1759
More information about the cairo
mailing list