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: Re: [RFC] automatically retrying network connections Date: Sun, 22 Jul 2018 18:44:46 +0200 Message-ID: <87d0vfkyo1.fsf@gmx.de> References: <87sh4dfz8r.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1532277849 12814 195.159.176.226 (22 Jul 2018 16:44:09 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 22 Jul 2018 16:44:09 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: Lars Ingebrigtsen , Emacs-Devel devel To: Jimmy Yuen Ho Wong Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jul 22 18:44:05 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 1fhHSi-00037k-1z for ged-emacs-devel@m.gmane.org; Sun, 22 Jul 2018 18:44:00 +0200 Original-Received: from localhost ([::1]:56727 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fhHUo-0000Ab-Uo for ged-emacs-devel@m.gmane.org; Sun, 22 Jul 2018 12:46:10 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:43511) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fhHTj-0007p9-QC for emacs-devel@gnu.org; Sun, 22 Jul 2018 12:45:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fhHTg-0001kO-DA for emacs-devel@gnu.org; Sun, 22 Jul 2018 12:45:03 -0400 Original-Received: from mout.gmx.net ([212.227.15.19]:42371) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1fhHTg-0001k8-2i for emacs-devel@gnu.org; Sun, 22 Jul 2018 12:45:00 -0400 Original-Received: from detlef.gmx.de ([213.220.158.134]) by mail.gmx.com (mrgmx002 [212.227.17.190]) with ESMTPSA (Nemesis) id 0MWk3f-1fX8Uj0ieR-00XxRB; Sun, 22 Jul 2018 18:44:50 +0200 In-Reply-To: (Jimmy Yuen Ho Wong's message of "Sun, 22 Jul 2018 15:28:01 +0100") X-Provags-ID: V03:K1:HQ+bEFMv6Y1c8wS8UKJaB/DaEuPnoGNUyADDx/ezq3TOQ0uk00I Sd0V8seDFDEQnNZefMe99KBweWs1+0/NNGHsbuap/UhZTobbvQKZgSW9Uq7QGULtivmfKv0 GDpbeAnYjUB4XTtldX7ENxV0X672SxFJl/KzVmhwF/1PW/DzWY1f79VrLWfyy/HdmWC4tFU z3KmFSWEFotfFNpRoZrYw== X-UI-Out-Filterresults: notjunk:1;V01:K0:/YKWoGR2VvY=:zD9Y7h1Bm0ea8NdDcG3ebP 69ZBdnjlOrlaCeoCJVBn6dNLT9m0UdowqdqZxXJ99nYaN+zJVluo+sZV+ADilDKSOyqq1iaAQ tyK3mvVu/gJRSZi8u5suUgmjQcBful6lGjwTIddqgajs/c6WUYn34o7EapuzNODlYc+TidfPy lw9PlKP5GtSDaTrjWs8av8tnzZ7rjI/zVOI+xtWgCZH5nsCFTjKn8IyC7pVmcpfcIoQYhTHtt 7geznS4URloosdc/3JQ3BNsara21gF/oeYBgA0nWHysPEjirEqxuNnBe28UDxJgjoQK1eE51/ lfWsJrMwrkNi9w088sece9VDsaVuSiAbBOSkrxWAVUZsh4V0kr1gT+1epzDBUmDTJX3hMwuPb hv3eQa9K3R1G22zVWmCzxLEhBs/JksRlah9tmkmI8JWWUA6pXT+l7W6HiYBI5P2+YvLpGQsQI 55CSdxk6mvkmHGU7RwpqjiOePsZL9eO3zN0nYfCHx7DQfKjMGZgbHTJrnhZaML/uunuNo88CC raH7tmVmzpR2Mjhdnr2tiESxA+sLXrO1eJP7XYKG0stqdFk+a/8FiCr59MOfYRzBQM2H6vNWX sZOdp0Gd6sX9GNcvgTBPcbgxrHSPXBz6S97zOuXbJ7xKlef3bE9h/AHWpyUqV+h0ZbSIzE3Cx zbcrhcht55PTJ8CwpjiSb/F/Ao25Y4eNLe8FcVdLBAWwrpF83qeO/Q4hMjWjWji2OPxlzPvl+ dmX85eKoim0cM6W4PTi5eRQ0go+KsNwesPhspSsEY9Q2OYjOY+XkADhM6yNUjQuaA+CUeyiN 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:227680 Archived-At: Jimmy Yuen Ho Wong writes: > The latter, parellel requests, and then join the results when they all > come back. I've come up with some bastardization of MapReduce now, but > this would be a lot nicer if Emacs had something like > https://github.com/chuntaro/emacs-promise built in, so I can combine > it with a generator to emulate async/await semantics. Emacs has threads. So you might do something like (let (threads result) ;; Create a thread per request. (setq threads (mapcar (lambda (request) (make-thread (lambda () )))) ) ;; Collect the results. (thread-yield) (dolist (thread threads result) (setq result (cons (thread-join thread) result)))) Best regards, Michael.