[cairo-bugs] [Bug 50705] New: cairo_glyph_path is not multithread safe
bugzilla-daemon at freedesktop.org
bugzilla-daemon at freedesktop.org
Mon Jun 4 13:25:20 PDT 2012
https://bugs.freedesktop.org/show_bug.cgi?id=50705
Bug #: 50705
Summary: cairo_glyph_path is not multithread safe
Classification: Unclassified
Product: cairo
Version: 1.12.2
Platform: x86-64 (AMD64)
OS/Version: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: general
AssignedTo: cworth at cworth.org
ReportedBy: zhaohongchao at gmail.com
QAContact: cairo-bugs at cairographics.org
environment: cairo on red hat linux with GCC 3.4.5.
context: use cairo_glyph_path to get halo effect.
description:
When I call the function in single thread environment, it is no problem; but in
multihread when run more than 2 hours, it crashes with the GDB info:
#0 0x0000000000b1f899 in kill ()
#1 0x00000000007f4d7b in __pthread_raise () at src/ul_file.cpp:28
#2 0x0000000000b1fc63 in abort ()
#3 0x0000000000b1a39c in __assert_fail ()
#4 0x00000000006f1589 in _cairo_hash_table_remove (hash_table=Variable
"hash_table" is not available.
) at cairo-hash.c:506
#5 0x00000000006d4b82 in _cairo_scaled_glyph_page_destroy (closure=Variable
"closure" is not available.
) at cairo-scaled-font.c:461
#6 0x00000000006ed1ac in _cairo_cache_shrink_to_accommodate (cache=0x1426480,
additional=0) at cairo-cache.c:223
#7 0x00000000006d5049 in _cairo_scaled_font_thaw_cache
(scaled_font=0x2acb989780) at cairo-scaled-font.c:793
#8 0x00000000006d6a66 in _cairo_scaled_font_glyph_path
(scaled_font=0x2acb989780, glyphs=0x2aab8358b0, num_glyphs=1,
path=0x2acc20e9f0) at cairo-scaled-font.c:2635
#9 0x00000000006bb26d in _cairo_gstate_glyph_path (gstate=0x2acc20e6b8,
glyphs=0x2acc76e210, num_glyphs=1, path=0x2acc20e9f0) at cairo-gstate.c:2061
#10 0x00000000006b2ce6 in cairo_glyph_path (cr=0x2acc20e680, glyphs=Variable
"glyphs" is not available.
) at cairo.c:3548
#11 0x000000000065366b in map::(anonymous namespace)::DrawTextImpl
(cr=0x2acc20e680, scaled_font=0x2ac43638e0, text=@0x2acc76e250,
at=@0x2acc21fb30, desc=@0x1585ad0, angle=0.17453292519943295) at
render_cairo.cpp:282
#12 0x0000000000654ae4 in map::CairoRender::DrawText (this=0x2ab0023e30,
pts=0x2acc21fb30, count=Variable "count" is not available.
On my more than 10 cores, it is on the same function: cairo_glyph_path.
Additionally, when I see other threads info, at least one thread run the same
function.
so my question is: is cairo_glyph_path multithread safe ?
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA Contact for the bug.
More information about the cairo-bugs
mailing list