[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#18438: 24.4.50; assertion failed in bidi.c
From: |
Eli Zaretskii |
Subject: |
bug#18438: 24.4.50; assertion failed in bidi.c |
Date: |
Thu, 16 Oct 2014 16:38:13 +0300 |
> Date: Thu, 16 Oct 2014 09:11:18 -0400
> From: Ken Brown <kbrown@cornell.edu>
> CC: 18438@debbugs.gnu.org
>
> On 10/16/2014 3:27 AM, Eli Zaretskii wrote:
> > Let's try to get a couple more full backtraces like this one, in case
> > some pattern emerges that could give us some ideas.
>
> I saw some things in Thread 7 (the Windows message queue thread), especially
> frame #14, which got me to look at the code for w32_wnd_proc in w32fns.c.
> The
> code is about 1300 lines long, and includes several comments about why it is
> thread-safe. Here are a few examples:
>
> Walking the frame list in this thread is safe (as long as
> writes of Lisp_Object slots are atomic, which they are on Windows).
>
> It is also safe to use functions that make GDI calls, such as
> w32_clear_rect, because these functions must obtain a DC handle
> from the frame struct using get_frame_dc which is thread-aware.
>
> The code below does something that one shouldn't do: it
> accesses the window object from a separate thread, while the
> main (a.k.a. "Lisp") thread runs and can legitimately delete
> and even GC it. That is why we are extra careful...
>
> I wonder if something in these 1300 lines is not thread-safe on Cygwin. For
> example, I don't know if it's true on Cygwin that "writes of Lisp_Object
> slots
> are atomic".
I will take a look, thanks.
- bug#18438: 24.4.50; assertion failed in bidi.c, (continued)
- bug#18438: 24.4.50; assertion failed in bidi.c, Ken Brown, 2014/10/11
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/11
- bug#18438: 24.4.50; assertion failed in bidi.c, Ken Brown, 2014/10/11
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/11
- bug#18438: 24.4.50; assertion failed in bidi.c, Ken Brown, 2014/10/11
- bug#18438: 24.4.50; assertion failed in bidi.c, aidalgol, 2014/10/14
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/15
- bug#18438: 24.4.50; assertion failed in bidi.c, aidalgol, 2014/10/15
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/16
- bug#18438: 24.4.50; assertion failed in bidi.c, Ken Brown, 2014/10/16
- bug#18438: 24.4.50; assertion failed in bidi.c,
Eli Zaretskii <=
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/19
- bug#18438: 24.4.50; assertion failed in bidi.c, Ken Brown, 2014/10/19
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/19
- bug#18438: 24.4.50; assertion failed in bidi.c, aidalgol, 2014/10/19
- bug#18438: 24.4.50; assertion failed in bidi.c, aidalgol, 2014/10/19
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/20
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/20
- bug#18438: 24.4.50; assertion failed in bidi.c, Ivan Shmakov, 2014/10/20
- bug#18438: 24.4.50; assertion failed in bidi.c, Eli Zaretskii, 2014/10/20
- bug#18438: 24.4.50; assertion failed in bidi.c, Ivan Shmakov, 2014/10/20