From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.devel Subject: Return value of finished threads Date: Fri, 20 Jul 2018 16:56:48 +0200 Message-ID: <87h8kuq7kf.fsf@gmx.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1532098524 15855 195.159.176.226 (20 Jul 2018 14:55:24 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Fri, 20 Jul 2018 14:55:24 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 20 16:55:20 2018 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 1fgWoR-0003yR-IZ for ged-emacs-devel@m.gmane.org; Fri, 20 Jul 2018 16:55:19 +0200 Original-Received: from localhost ([::1]:48499 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fgWqW-0000dd-M9 for ged-emacs-devel@m.gmane.org; Fri, 20 Jul 2018 10:57:28 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48599) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fgWq1-0000SJ-FC for emacs-devel@gnu.org; Fri, 20 Jul 2018 10:56:58 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fgWpw-0005yX-H6 for emacs-devel@gnu.org; Fri, 20 Jul 2018 10:56:57 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:43889) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fgWpw-0005y9-6X for emacs-devel@gnu.org; Fri, 20 Jul 2018 10:56:52 -0400 Original-Received: from detlef.gmx.de ([212.86.58.36]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0M6zkD-1fuKrE2vGX-00wlwT for ; Fri, 20 Jul 2018 16:56:49 +0200 X-Provags-ID: V03:K1:IA7EIJHWLmHMc6R9QhnENV1s+8M5+iAX5QXSOHzKG2UjjhGwmfc T4ADifI1ngn9t/DOm7VaEnJZFYXOuUs02Ye2em1m1Hp2/nm3geT0+h58z9pLBy15afEdswy Y5VyyGWePmujx4C/mffJazeu/bZp/jTxvagWUw2f5gQsn3fG3pZTXH/eCUSKs1MwWPhUGOm 6NQmHK9VFFprZu4lIECrQ== X-UI-Out-Filterresults: notjunk:1;V01:K0:uB2NgnKnKt4=:iUKkOJB6ltVWd3F/svtKfu T9hLDV9JKm9ZNAqg/lL6BZDJOhLHuBR/jl1nacA6xuNJCV1EfR/ZCz8SBbCGiX/D/Naufn7X8 14MsjpfHKEhklEzApNe9C1S33WOZgoSEHY0DLYf9/R9imJsQhoCufb1976sikfkZcQ9iJBTsw T5PYkCW7LTqLRypWUcSQp1+vQD31ZgFYed+ePEXqtwg2Amurq4pXWGzJPvqGqSa6cYTs01mdl YgoFlW9RiiZAjDjgCskGH/P0VdR92ifNaerMQQWQGlasUJw81X3IfgsoWUttUfGQpMMwMPzp1 9KlgCbRRY2RPLHsT7oFhx7lzAlS8Ig+O0d1kPSN3ryJaL5tCKqUAbWFXWwdjOahdpABx//ahi mhHQmNJOHJOR9FcYCAi9s7WyqT4aRjwvT1glhRjHx/elp7rISxobB4+/3+xon3mUI85d/ZLD9 rSTjR/o3fNXIY2qSI2WOqX8ER/u20qGrnbTgnUKgJ70B8RHjUlYr4AaWrFRmqMJHhT7FWYnnB HRrCbQBtCLZKyaoq1SLh5Uoqs96pLWN8ff68WnQCVIgElqVxSPhNGWfQT65LlW9MmvPPoqIph E91N4PnID3RL4ge4ymzoAvIj/w29kTWKrPhDrwdbDfKsqYztu+Ex3hJWCQdxVHH5zXPz2XYym 3qTHFqN6EsUUAly2ZE66HWdaQAhBsA31MiC2ElBqM9rx3O/O3E/0AsXAo+8f34TWIZmQJA2YO Ys6qj4j0aR/EQkdFgEZhni5i+ix/wRhz1SBkvbunEw5EFKrdef4N4FRfmBQvLo9b0Gdm9wa7 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 212.227.15.19 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:227583 Archived-At: Hi, these days I'm working on making Tramp thread-safe. This works already, but is only part of the job. The other part is *using* threads. My first use case I'll try to implement is `find-file' with wildcards. That is, for every single file to be loaded, an own thread is created. A user indicates this interactively by a prefix argument like "C-u M-x find-file ...". What I'm missing is a simple possibility to collect the return values of the respective finished threads (`find-file-noselect' calls), which is a buffer or a list of buffers. The documentation recommends the use of global variables, which would be inconvenient for many threads to supervise. So I'm wondering if we could extend thread support by an indication of the thread result, when finished. One idea would be that `thread-join' returns with that value. Another idea, even broader, would be to extend `condition-notify' by an argument, which passes a Lisp object to another thread. The corresponding `condition-wait' would return that value. What do people think? Best regards, Michael.