Siarhei Siamashka <siarhei.siamas...@gmail.com> writes: > This problem looks bad enough to me, or at least makes me feel uneasy. > Changing > how the caching works could also cause some weird problems in the future > unless > everything is carefully taken into account. Also various tools like helgrind > will complain a lot and it would be hard to differentiate real problems from > just some mostly safe ugliness.
I agree this really should be fixed, my main point is that I don't think it's a huge problem in current practice - in particular, versions of pixman with these caches have been used with no problems with cairo 1.8.x, including presumably in some of those applications that uses images in a read-only way from multiple threads. > In addition, requiring not to change the properties may be a bit restrictive, > limiting the usefulness of this model. > > I would suggest to generally forbid using the same pixman_image_t from > multiple > threads, but also add a function for creating pixman_image_t clone, which > would share the pixel buffer with the original image and track pixel buffer > lifetime via thread-safe refcounting. So using the same image from another > thread would just require creating a clone instead of doing > 'pixman_image_ref', > all the rest should be exactly the same. It might be possible to do both: guarantee that read-only use will work, but then also add a pixman_image_clone() function for the case where you want the same pixels with different properties. Soren _______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman