GNU bug report logs -
#25247
26.0.50; Concurrency crashes
Previous Next
Reported by: Tino Calancha <tino.calancha <at> gmail.com>
Date: Thu, 22 Dec 2016 10:21:02 UTC
Severity: normal
Tags: fixed
Found in version 26.0.50
Done: npostavs <at> users.sourceforge.net
Bug is archived. No further changes may be made.
Full log
Message #47 received at 25247 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
On 30 December 2016 at 17:41, Eli Zaretskii <eliz <at> gnu.org> wrote:
Elias, I'd be grateful if you could repeat your thread-related tests
> from 2 weeks ago with the latest master (both in "emacs -nw" and in a
> GUI session), and see if any of those problems are back.
>
I did some tests.
The C-g issue is still gone.
As for the concurrency issues. I have been hammering this thing pretty
hard, and no crashes so far.
However, I have seen some strange issues. I've been trying to isolate the
behaviour, but I don't have any more time to do so at the moment, so I'll
just summarise where I am:
*Issue 1:*
*========*
I open IELM in one window, and an empty buffer "z" in another, and type the
following:
(loop
repeat 10
do (make-thread (lambda ()
(let ((n (random 10)))
(with-current-buffer "z"
(sleep-for n)
(insert (format "Foo:%d\n" n)))))))
Here, I'd expect to see the "z" buffer being updated at the corresponding
times. I.e. the message "Foo:4" should be displayed after 4 seconds. This
is not what I see. Instead the messages appear in batches (i.e. several
rows appearing at the same time).
*Issue 2:*
*========*
The following seems to be a problem with lexically bound lambda functions
used in a thread. The following example illustrates the problem:
(let ((x "test"))
(make-thread (lambda ()
(with-current-buffer "z"
(insert x)))))
I would expect this to insert "test" into the buffer, but instead nothing
happens. Removing the reference to the variable "x" in the lambda makes it
work.
Regards,
Elias
[Message part 2 (text/html, inline)]
This bug report was last modified 8 years and 137 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.