[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: multi-threaded Emacs
From: |
Giuseppe Scrivano |
Subject: |
Re: multi-threaded Emacs |
Date: |
Sun, 07 Dec 2008 00:41:02 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Stefan Monnier <address@hidden> writes:
>> It will be safe in the sense that it won't cause a crash. But it will
>> mess up Elisp's semantics. Consider:
>
>> (dotimes (i 1000) (toto))
>
>> if you run this code twice in separate threads and allow context
>> switches at QUIT, then you'll basically be doing "preemptive
>> concurrency" seen from Elisp's point of view. Among other things, the
>> two threads will be fighting over the value of `i'.
>
>> Each thread should have its own local bindings. To do this
>> requires swapping bindings in and out of the specpdls
>> when switching threads. It is not hard.
>
>> This makes thread switches slower, and that makes it desirable
>> to do them less often.
>
> It might be an acceptable temporary solution, but in the long term we
> will want to allow true parallelism, so such trickery will not be
> an option.
Actually I am using what Richard suggested. Every thread has a specpdl
and on a thread switch I copy the current symbol value inside its
specbinding cell.
Still there is much to do but now I am able to do this:
(setq a-thread (make-thread))
#<thread 1>
(progn
(run-in-thread a-thread '(dotimes (i 2)
(print "hello")
(yield)))
(dotimes (i 2)
(print "world")
(yield)))
"hello"
"world"
"hello"
"world"
Giuseppe
- Re: multi-threaded Emacs, (continued)
- Re: multi-threaded Emacs, Stefan Monnier, 2008/12/05
- Re: multi-threaded Emacs, Ted Zlatanov, 2008/12/05
- Re: multi-threaded Emacs, Tom Tromey, 2008/12/05
- Re: multi-threaded Emacs, Miles Bader, 2008/12/05
- Re: multi-threaded Emacs, Helmut Eller, 2008/12/06
- Re: multi-threaded Emacs, Stefan Monnier, 2008/12/06
- Re: multi-threaded Emacs, Richard M Stallman, 2008/12/06
- Re: multi-threaded Emacs, Stefan Monnier, 2008/12/05
- Re: multi-threaded Emacs, Richard M Stallman, 2008/12/06
- Re: multi-threaded Emacs, Stefan Monnier, 2008/12/06
- Re: multi-threaded Emacs,
Giuseppe Scrivano <=
- Re: multi-threaded Emacs, Stefan Monnier, 2008/12/07
- Re: multi-threaded Emacs, Giuseppe Scrivano, 2008/12/07
- Re: multi-threaded Emacs, Chetan Pandya, 2008/12/07
- Re: multi-threaded Emacs, Stefan Monnier, 2008/12/08
- Re: multi-threaded Emacs, Richard M Stallman, 2008/12/07
- Re: multi-threaded Emacs, Stefan Monnier, 2008/12/07
- Re: multi-threaded Emacs, Giuseppe Scrivano, 2008/12/07
- Re: multi-threaded Emacs, Richard M Stallman, 2008/12/08
- Re: multi-threaded Emacs, Giuseppe Scrivano, 2008/12/08
- Re: multi-threaded Emacs, dhruva, 2008/12/08