From: Nic Ferrier <nferrier@tapsellferrier.co.uk>
Cc: emacs-devel@gnu.org
Subject: Re: Are there plans for a multi-threaded Emacs?
Date: 30 Nov 2003 19:40:39 +0000 [thread overview]
Message-ID: <87vfp17ih4.fsf@kanga.tapsellferrier.co.uk> (raw)
In-Reply-To: <87ekvpx18d.fsf@emptyhost.emptydomain.de>
Kai Grossjohann <kai@emptydomain.de> writes:
> Miles Bader <miles@lsi.nec.co.jp> writes:
>
> > Consider a simple bit of elisp code: (setq GLOBAL (cons 'x GLOBAL))
> > In a pre-emptively threaded emacs, another thread could run between
> > accessing GLOBAL and setting it. Whoops.
>
> Well, I don't know a lot about threading, but Java, at least, has the
> same problem: you need to synchronize access to a variable to prevent
> such things from happening. By default, synchronized access is turned
> off.
>
> So if all of what is now in Emacs continues to run in a single thread,
> and you just provide a function to create a new thread and run stuff
> in that new thread, then it would be the responsibility of the people
> creating threads to make sure that they don't step on each other's
> toes.
>
> Then the remaining problem is that possibly a lot of functions cannot
> be safely used because they access global variables. But that is just
> something that people will have to live with, and maybe it will get
> better over time. I think that it will be good enough at least for
> some packages to do part of their work in the background.
>
> What do people think? Maybe I missed something obvious...
I think there are 2 big problems:
1. emacs _is_ global variables, there aren't any thread safe routines
right now because thread safety has not been an issue uptil now. So
display, buffer manipulation, everything becomes a thread problem.
2. I think dynamic scope also makes this a lot more complicated
because you're not talking about just globals anymore but variables
passed from a proc into a thread-proc and onwards. Very tricky.
Nic
next prev parent reply other threads:[~2003-11-30 19:40 UTC|newest]
Thread overview: 133+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-11-16 21:46 Are there plans for a multi-threaded Emacs? Frank Schmitt
2003-11-17 0:49 ` Alex Schroeder
2003-11-17 4:06 ` Dhruva Krishnamurthy
2003-11-17 4:29 ` Miles Bader
2003-11-30 16:36 ` Kai Grossjohann
2003-11-30 18:01 ` Vinicius Jose Latorre
2003-11-30 18:39 ` Kai Grossjohann
2003-11-30 18:12 ` Benjamin Riefenstahl
2003-11-30 19:40 ` Nic Ferrier [this message]
2003-12-01 16:04 ` Ted Zlatanov
2003-12-02 14:45 ` Ted Lemon
2003-12-02 15:48 ` Per Abrahamsen
2003-12-02 17:18 ` David Kastrup
2003-12-03 12:38 ` Per Abrahamsen
2003-12-02 17:27 ` Stefan Monnier
2003-12-02 18:53 ` Simon Josefsson
2003-12-03 13:03 ` Per Abrahamsen
2003-12-02 17:44 ` Ted Zlatanov
2003-12-03 17:16 ` Richard Stallman
2003-12-03 17:58 ` Ted Zlatanov
2003-12-03 23:38 ` Martin Stjernholm
2003-12-04 13:05 ` Ted Zlatanov
2003-12-04 14:07 ` David Kastrup
2003-12-04 14:58 ` Nic Ferrier
2003-12-04 15:44 ` David Kastrup
2003-12-04 16:17 ` Kim F. Storm
2003-12-04 15:58 ` Nic Ferrier
2003-12-04 16:26 ` non-blocking sockets (was Re: Are there plans for a multi-threaded Emacs?) Nic Ferrier
2003-12-05 11:35 ` Kim F. Storm
2003-12-04 19:55 ` Are there plans for a multi-threaded Emacs? Ted Zlatanov
2003-12-04 20:30 ` Stefan Monnier
2003-12-04 20:58 ` Ted Zlatanov
2003-12-04 22:49 ` Stefan Monnier
2003-12-05 12:17 ` Ted Zlatanov
2003-12-05 13:06 ` Thien-Thi Nguyen
2003-12-05 14:44 ` David Kastrup
2003-12-07 23:55 ` Stefan Monnier
2003-12-08 16:54 ` Ted Zlatanov
2003-12-08 17:09 ` David Kastrup
2003-12-08 18:10 ` Ted Zlatanov
2003-12-08 22:02 ` Martin Stjernholm
2003-12-08 18:25 ` What's the problem? (Was: Are there plans for a multi-threaded Emacs?) Luke Gorrie
2003-12-08 19:56 ` Ted Zlatanov
2003-12-08 20:56 ` David Kastrup
2003-12-08 22:09 ` Martin Stjernholm
2003-12-08 21:01 ` Stefan Monnier
2003-12-08 19:57 ` What's the problem? Simon Josefsson
2003-12-09 23:45 ` Juri Linkov
2003-12-10 0:58 ` Simon Josefsson
2003-12-10 4:35 ` Miles Bader
2003-12-10 5:38 ` Simon Josefsson
2003-12-10 5:51 ` Miles Bader
2003-12-10 6:34 ` Simon Josefsson
2003-12-10 7:19 ` Miles Bader
2003-12-11 14:12 ` Stefan Monnier
2003-12-11 23:09 ` Miles Bader
2003-12-12 23:55 ` Richard Stallman
2003-12-13 16:11 ` Eli Zaretskii
2003-12-13 17:29 ` Jan D.
2003-12-13 17:35 ` David Kastrup
2003-12-14 6:17 ` Eli Zaretskii
2003-12-14 11:55 ` David Kastrup
2003-12-14 14:27 ` Eli Zaretskii
2003-12-14 10:18 ` Richard Stallman
2003-12-10 8:18 ` Eli Zaretskii
2003-12-11 14:45 ` Richard Stallman
2003-12-10 15:36 ` Ted Zlatanov
2003-12-11 1:46 ` Miles Bader
2003-12-12 23:54 ` Richard Stallman
2003-12-11 18:39 ` Ted Zlatanov
2003-12-11 18:48 ` Ted Zlatanov
2003-12-12 3:27 ` Luke A. Olbrish
2003-12-12 3:57 ` Miles Bader
2003-12-13 15:17 ` Richard Stallman
2003-12-13 4:08 ` Miles Bader
2003-12-13 23:14 ` Richard Stallman
2003-12-14 13:12 ` Emacs kill buffer Camm Maguire
2003-12-09 19:28 ` What's the problem? (Was: Are there plans for a multi-threaded Emacs?) Ted Zlatanov
2003-12-09 22:02 ` David Kastrup
2003-12-10 0:13 ` Stefan Monnier
2003-12-10 1:41 ` David Kastrup
2003-12-10 2:49 ` Stefan Monnier
2003-12-12 0:44 ` Martin Stjernholm
2003-12-10 0:45 ` Martin Stjernholm
2003-12-10 2:55 ` Stefan Monnier
2003-12-09 19:32 ` Ted Zlatanov
2003-12-09 22:13 ` Stefan Monnier
2003-12-10 15:16 ` Ted Zlatanov
[not found] ` <E1AUS6B-0006KH-Hq@fencepost.gnu.org>
[not found] ` <4ny8tjryy8.fsf@collins.bwh.harvard.edu>
[not found] ` <4nn09xm68c.fsf@collins.bwh.harvard.edu>
2003-12-13 23:15 ` What's the problem? Richard Stallman
2003-12-14 3:21 ` Martin Stjernholm
2003-12-05 8:58 ` Are there plans for a multi-threaded Emacs? Thien-Thi Nguyen
2003-12-05 11:58 ` Ted Zlatanov
2003-12-05 12:12 ` Ted Zlatanov
2003-12-05 20:37 ` Luke A. Olbrish
2003-12-05 21:45 ` Ted Zlatanov
2003-12-08 0:10 ` Stefan Monnier
2003-12-08 1:26 ` Luke A. Olbrish
2003-12-04 17:22 ` Martin Stjernholm
2003-12-04 18:01 ` David Kastrup
2003-12-04 18:31 ` Martin Stjernholm
2003-12-04 19:26 ` David Kastrup
2003-12-04 22:05 ` Martin Stjernholm
2003-12-04 20:18 ` Ted Zlatanov
2003-12-04 23:00 ` Martin Stjernholm
2003-12-05 12:06 ` Ted Zlatanov
2003-12-05 13:16 ` Martin Stjernholm
2003-12-05 21:30 ` Ted Zlatanov
2003-12-05 14:46 ` David Kastrup
2003-12-05 15:07 ` Martin Stjernholm
2003-12-05 13:56 ` Benjamin Riefenstahl
2003-12-05 21:33 ` non-blocking auto-save (was: Are there plans for a multi-threaded Emacs?) Ted Zlatanov
2003-12-03 20:01 ` Are there plans for a multi-threaded Emacs? Nic Ferrier
2003-12-03 20:29 ` Stefan Monnier
2003-12-03 21:42 ` Robert J. Chassell
2003-12-04 7:33 ` Richard Stallman
2003-12-04 15:37 ` Stefan Monnier
2003-12-04 18:06 ` Thien-Thi Nguyen
2003-12-04 7:33 ` Richard Stallman
2003-12-04 13:14 ` Ted Zlatanov
2003-12-04 15:41 ` Stefan Monnier
2003-12-06 20:58 ` Kai Grossjohann
2003-12-07 0:15 ` Thien-Thi Nguyen
2003-12-07 14:52 ` Kai Grossjohann
2003-12-07 16:58 ` Thien-Thi Nguyen
2003-12-07 4:16 ` Martin Stjernholm
2003-12-07 14:53 ` Kai Grossjohann
2003-12-07 23:00 ` Martin Stjernholm
2003-11-17 19:31 ` Richard Stallman
2003-11-17 22:53 ` David Masterson
2003-11-18 5:57 ` Miles Bader
2003-11-20 19:19 ` David Masterson
2003-11-22 21:19 ` Richard Stallman
2003-11-18 6:52 ` John Wiegley
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87vfp17ih4.fsf@kanga.tapsellferrier.co.uk \
--to=nferrier@tapsellferrier.co.uk \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.