From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Can we go GTK-only? Date: Mon, 31 Oct 2016 17:52:47 +0200 Message-ID: <83d1igplbk.fsf@gnu.org> References: <24db2975-17ca-ad01-20c8-df12071fa89a@dancol.org> <4615E73A-19E2-4B79-9889-D3FA686DDDE6@raeburn.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1477930672 11007 195.159.176.226 (31 Oct 2016 16:17:52 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 31 Oct 2016 16:17:52 +0000 (UTC) Cc: raeburn@raeburn.org, emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 31 17:17:48 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1c1FGW-0004y4-0e for ged-emacs-devel@m.gmane.org; Mon, 31 Oct 2016 17:16:52 +0100 Original-Received: from localhost ([::1]:36713 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1FGX-00067O-Em for ged-emacs-devel@m.gmane.org; Mon, 31 Oct 2016 12:16:54 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58197) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1Et3-0000wA-PJ for emacs-devel@gnu.org; Mon, 31 Oct 2016 11:52:38 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1c1Esz-0000XF-TU for emacs-devel@gnu.org; Mon, 31 Oct 2016 11:52:37 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:49436) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1c1Esz-0000X9-QF; Mon, 31 Oct 2016 11:52:33 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:3131 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1c1Esz-0001BF-09; Mon, 31 Oct 2016 11:52:33 -0400 In-reply-to: (message from Stefan Monnier on Sun, 30 Oct 2016 17:42:18 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:209020 Archived-At: > From: Stefan Monnier > Date: Sun, 30 Oct 2016 17:42:18 -0400 > Cc: emacs-devel@gnu.org > > Ideally, yes, I definitely think we should split the Emacs process into > various threads: > - some threads for the GUI. > - one thread for the Elisp engine (which receives events from the GUI > threads among others). What do "the GUI threads" do? "GUI" can mean many things, so the above is too vague, IMO. > So the GUI thread would handle the expose events, read-locking the > matrices, while the redisplay would run in another thread, write-locking > those same matrices. Handling an expose event entails consulting buffer contents and overlays, e.g. when the exposed region has mouse highlight, so doing that asynchronously might show incorrect display, if the main thread modifies the buffer.