Re[2]: multi-threaded Emacs

From:

ak70

Subject:

Re[2]: multi-threaded Emacs

Date:

Wed, 3 Dec 2008 08:59:09 +0100

Hi, guys. I have a generic user-level thread library on Linux. Maybe it can
help.
The thread system is called SMASH developed by Kurt Debattista in 2001 as his
master study in University of Malta.
It uses the two level scheduling model, i.e. we have m user level threads
running on top of n kernel threads. If you guys are interested,
I can send you the thesis about it( it is a pdf file of size 1Mb).
A few month ago, I obtained the permission from Kurt to release it under GPL. I
did some work on it too for my undergraduate study.
The problems:
1. It is platform dependent. Kurt and I used some x86 assembly language to
implement spin locks and lock-free algorithms.
2. It lacks some common features that you would expect in a thread library. For
example it has no thread id and when a user-level terminates,
the thread structure will not be destroyed. This is however done on purpose,
because our supervisor argued that SMASH should be at the lowest
level so that any fancy(or not so fancy) features should be implemented by
other libraries built on top of it.
3. Since it is developed as a academic project, a lot of decisions were made in
favor of our study, not production use.
I think it is a good starting point, but it is not for immediate use. So what
you guys think? Are you interested?
> -----Original Message-----
> From: Giuseppe Scrivano <address@hidden>
> To: Stefan Monnier <address@hidden>
> Cc: address@hidden, address@hidden
> Date: 12/02/08 23:41
> Subject: Re: multi-threaded Emacs
>
> Stefan Monnier <address@hidden> writes:
>
> > I rarely use multiple terminals, and when I use them, the current
> > restrictions are mostly bearable. OTOH I very often would like to keep
> > using my Emacs while it's byte-compiling some files, or while Gnus is
> > fetching some newsgroup.
>
> This is exactly the problem I had when I first thought of threads.
>
> Do you think we can solve it (at least partially) using a concurrent
> model?
>
> Thanks,
> Giuseppe