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