From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: "Robert J. Chassell" Newsgroups: gmane.emacs.devel Subject: Re: Are there plans for a multi-threaded Emacs? Date: Wed, 3 Dec 2003 21:42:01 +0000 (UTC) Sender: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Message-ID: References: <87oevbes4h.fsf@emacswiki.org> <20031117040607.C6C5D79B72@server2.messagingengine.com> <87ekvpx18d.fsf@emptyhost.emptydomain.de> <4nad6cikxy.fsf@holmes.bwh.harvard.edu> <87ptf5zn4k.fsf@kanga.tapsellferrier.co.uk> Reply-To: bob@rattlesnake.com NNTP-Posting-Host: deer.gmane.org X-Trace: sea.gmane.org 1070488161 27484 80.91.224.253 (3 Dec 2003 21:49:21 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 3 Dec 2003 21:49:21 +0000 (UTC) Original-X-From: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Wed Dec 03 22:49:16 2003 Return-path: Original-Received: from quimby.gnus.org ([80.91.224.244]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 1ARes0-0004nM-00 for ; Wed, 03 Dec 2003 22:49:16 +0100 Original-Received: from monty-python.gnu.org ([199.232.76.173]) by quimby.gnus.org with esmtp (Exim 3.35 #1 (Debian)) id 1ARes0-0005Ue-00 for ; Wed, 03 Dec 2003 22:49:16 +0100 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.24) id 1ARfp5-0005qj-Bz for emacs-devel@quimby.gnus.org; Wed, 03 Dec 2003 17:50:19 -0500 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.24) id 1ARfoY-0005kM-Ir for emacs-devel@gnu.org; Wed, 03 Dec 2003 17:49:46 -0500 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.24) id 1ARfl6-0004mm-Mc for emacs-devel@gnu.org; Wed, 03 Dec 2003 17:46:43 -0500 Original-Received: from [140.186.114.245] (helo=rattlesnake.com) by monty-python.gnu.org with esmtp (Exim 4.24) id 1ARfiF-0003sl-7c for emacs-devel@gnu.org; Wed, 03 Dec 2003 17:43:15 -0500 Original-Received: by rattlesnake.com via sendmail from stdin id (Debian Smail3.2.0.115) Wed, 3 Dec 2003 21:42:01 +0000 (UTC) Original-To: emacs-devel@gnu.org In-reply-to: (message from Stefan Monnier on 03 Dec 2003 15:29:42 -0500) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Emacs development discussions. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+emacs-devel=quimby.gnus.org@gnu.org Xref: main.gmane.org gmane.emacs.devel:18340 X-Report-Spam: http://spam.gmane.org/gmane.emacs.devel:18340 Stefan Monnier wrote: But maybe if we add one lock per buffer and we make `with-current-buffer' acquire&release the lock we might get a workable model, albeit with a necessarily very coarse grain .... Yes. From a user interface point of view, the interactive unit is the buffer (or a closely associated group of buffers, as in Gnus). Users work with buffers. Only programmers, developers, and people on the emacs-devel list think otherwise.... :) When a buffer is operating asynchronously, then nothing should affect it except a Control-c in the buffer itself. The process/thread/whatever gets updated *afterwards*. >>From a user's point of view, when you run the process in the buffer, it is as if the buffer were run by another instance of Emacs, but with an environment that is identical to the start of the process. (Maybe this is how it is done; a new instance is spawned.) The independent buffer process goes on its own. After it stops, it is updated. And after that, maybe, it updates the rest. Of course, extreme care will still be needed, but that's OK. Yes. Very true! -- Robert J. Chassell Rattlesnake Enterprises http://www.rattlesnake.com GnuPG Key ID: 004B4AC8 http://www.teak.cc bob@rattlesnake.com