如果我在两个不同的线程中使用两个不同的cairo_t
(和相关的cairo_surface_t等)对象,是否可以保证由于共享的全局状态而不会出现竞争条件?
我是否还可以将cairo_t
对象从一个线程正式传递给另一个线程而没有任何意外行为(可能是线程本地存储引起的)?
最佳答案
此错误跟踪讨论应回答您的问题:https://bugs.freedesktop.org/show_bug.cgi?id=74355
1.开罗应重新进入
当然,只是一个数组。只要您期望什么,它就可以工作
喜欢有用的结果。只要保持开罗线程安全
线程不共享任何状态(嗯,这是一个
过于简化,但您的第一种方法不可行)。
2.线程本地存储可能会使Pixman崩溃
作为一项政策,除非另有证明,否则您应始终将第三方库视为不安全的。