Line drawing using Cairo not thread-safe
Submitted by H. Guijt
Link to original bug (#724470)
Description
This is a bugreport on Cairo/Pixman, or more particularly, on how it has been compiled. I'm not sure where to report this properly; the Cairo people pointed me here.
I'm using Cairo (on Windows, 32-bit or 64-bit) to draw graphs with lots (millions) of tiny line pieces. To speed up this process I'm attempting to use multiple threads to draw the line pieces. This greatly improves performance, but typically causes a crash within a few minutes.
I reported this problem to the Cairo folks (see https://bugs.freedesktop.org/show_bug.cgi?id=74355), and they believe it crashes because Pixman has been compiled using a compiler that does not support thread-local storage properly.
"When pixman calls a NULL pointer, it's essentially always because thread-local storage is broken on the system. Basically, the pixman binary you are using is miscompiled."
Since I'm using the precompiled Cairo/Pixman from the GTK website, and since I haven't managed to compile Cairo or Pixman myself, I'm hoping you can help me with this issue.
Stack traces (such as they are) and example code can be found in the freedesktop link above.