Re: Thread-safety and library versions

Weeble <[email protected]>
Newsgroups gmane.comp.lib.cairo
Message-ID <CACBComEyZCxr11vGkxxdhseF+wojXCMUg-mZ7DgupUNeuZdssg@mail.gmail.com>
Thanks for the quick replies. I've submitted a bug, along with my
analysis of what I think is happening:
https://bugs.freedesktop.org/show_bug.cgi?id=69470

On 17 September 2013 14:09, Chris Wilson <[email protected]> wrote:
> On Tue, Sep 17, 2013 at 02:44:53PM +0200, Uli Schlachter wrote:
>> Hi,
>>
>> On 17.09.2013 14:16, Weeble wrote:
>> [...]
>> > More specifically, I'm running libcairo 1.12.14 and libfontconfig
>> > 2.10.2. When Mono repeatedly creates cairo drawing contexts, calls
>> > cairo_select_font_face, and destroys the drawing contexts; (with each
>> > context accessed only from a single thread, but more than one thread
>> > running at once;) sooner or later it crashes when
>> > _cairo_toy_font_face_destroy calls _cairo_hash_table_remove and raises
>> > an assertion, apparently because the key is missing from the hash
>> > table.
>>
>> I was thinking "it can't be that simple" and produced the attached test program
>> which does exactly this. The result with current cairo from git:
>>
>> a.out: cairo-hash.c:506: _cairo_hash_table_lookup_exact_key: Assertion
>> `!"reached"' failed.
>>
>> Could someone with more clue about how things are supposed to work take a look
>> at this? Chris? Behdad?
>
> Sure, that looks to be a race inside toy-font.
> -Chris
>
> --
> Chris Wilson, Intel Open Source Technology Centre
-- 
cairo mailing list
[email protected]
http://lists.cairographics.org/mailman/listinfo/cairo
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.