From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michael Albinus Newsgroups: gmane.emacs.bugs Subject: bug#33018: 26.1.50; thread starvation with async processes and accept-process-output Date: Tue, 16 Oct 2018 15:54:02 +0200 Message-ID: <87sh16ro91.fsf@gmx.de> References: <87r2gwbmma.fsf@tcd.ie> <875zy7cqzd.fsf@gmx.de> <878t30h823.fsf@tcd.ie> <87sh177i36.fsf@gmx.de> <877eiipu8g.fsf@tcd.ie> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Trace: blaine.gmane.org 1539697993 4991 195.159.176.226 (16 Oct 2018 13:53:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 16 Oct 2018 13:53:13 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux) Cc: 33018@debbugs.gnu.org To: "Basil L. Contovounesios" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Oct 16 15:53:09 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1gCPmW-00019p-NN for geb-bug-gnu-emacs@m.gmane.org; Tue, 16 Oct 2018 15:53:08 +0200 Original-Received: from localhost ([::1]:58181 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCPod-0001ZR-CL for geb-bug-gnu-emacs@m.gmane.org; Tue, 16 Oct 2018 09:55:19 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:40502) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gCPoR-0001Xl-9z for bug-gnu-emacs@gnu.org; Tue, 16 Oct 2018 09:55:12 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gCPoM-00085U-AZ for bug-gnu-emacs@gnu.org; Tue, 16 Oct 2018 09:55:07 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:47692) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gCPoM-00085H-4j for bug-gnu-emacs@gnu.org; Tue, 16 Oct 2018 09:55:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gCPoM-0005KY-2j for bug-gnu-emacs@gnu.org; Tue, 16 Oct 2018 09:55:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michael Albinus Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 16 Oct 2018 13:55:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33018 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 33018-submit@debbugs.gnu.org id=B33018.153969805220405 (code B ref 33018); Tue, 16 Oct 2018 13:55:02 +0000 Original-Received: (at 33018) by debbugs.gnu.org; 16 Oct 2018 13:54:12 +0000 Original-Received: from localhost ([127.0.0.1]:51948 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gCPnY-0005J2-Iy for submit@debbugs.gnu.org; Tue, 16 Oct 2018 09:54:12 -0400 Original-Received: from mout.gmx.net ([212.227.15.15]:51147) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gCPnW-0005Io-RY for 33018@debbugs.gnu.org; Tue, 16 Oct 2018 09:54:11 -0400 Original-Received: from detlef.gmx.de ([212.86.50.126]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0M243n-1fNsbg33mt-00u59Q; Tue, 16 Oct 2018 15:54:03 +0200 Original-Received: from detlef.gmx.de ([212.86.50.126]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0M243n-1fNsbg33mt-00u59Q; Tue, 16 Oct 2018 15:54:03 +0200 In-Reply-To: <877eiipu8g.fsf@tcd.ie> (Basil L. Contovounesios's message of "Tue, 16 Oct 2018 02:15:27 +0100") X-Provags-ID: V03:K1:KtQC+Mroc7+sdnkSV91A3f8zOsjmlDN2x+Fvp0HvPrvbIsJ/vhi xa0Q+8Fx7mjPg9G9F1/K/yvv+5xD2UZECxN8NHDOxu0FeKycZnExUVjuKycLvyLTn5nLZEU q2e0vpY7pfeN0DZ1t8wRYsyP+4dIgBqhoqsTpQvMaCwdyXVWmDYEbMnC4Vti03GmJPTz1Vg qO7eoDpmIHZ56KXUm3qWw== X-UI-Out-Filterresults: notjunk:1;V01:K0:nUfzXSnlqr0=:a1S58+3vSGPDsgoSyByalH 7K3BGD2CpRoIbrFH7iXoNDBhdZb4NVnHmQyaMSUtDqR5Db6VLtt471Ll724I/ecmEiCL8urAM qYYKVzqP44Ajbtsvo257R53TWAbb/k9uKLdqSz2S+73uOl+ZLqNga4KconFL2lynG2/iBA2qE DJKDrHal94vkWt+ChFuDiwNMFuwoecbogH2eXGfKSh4A8Xak5NN8jiPUf6uCqJjiP3t1nNcIA KaFAgTgaMxjNvSVga4zoyeuW3GZMKaCrObr9gjuRHOoOkvOBATJHeGrl72uURdh3F2yuvwX4z pdITzneoc7vFwwnsD9IkwzQ/3p0my6d3JPmLaw541N5spTpeEXLGy8JJVJ1nRCVy7YXRyJXPc IiFPrPC8XNEOjefzlJcFA0nTrFQF/Qq4YX35P1mIKNv4vABRZ/wAjoM7Yg6lUJhYaBRylrgvA 0H7xuzgdiIst8y3qnilpwRRXMFyPQaDQQzT8vTMnGnjQGeboTGpszZgAIzkUSK899RvREW725 tfehBm95A9unx4fZnEN6bBebP5jnhSGt6vZNZG26xt7llHGuLXJV6onNkpBsPljr5/8qdZxp+ 7R79nkjZ3h/CHZaYv0ZpMgrQ+pqhrYxvopZwWHgDcWyEVwyHCrNhAWIeu01jjzhZgsyDfaQEe WJSzr920MPwIrtSZhy4utBOV5bQGJbgDP7iq1Rlf6B4e/F9BuSrbJas1Zs0/qBqI7eGO85b9J UTyfuvz5jjGGTrLwu7uBZljXuA88P8A/nxOBgXa4NZntYuabOlUHEo+jiqhm+7964/Hhnvxc X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:151305 Archived-At: --=-=-= Content-Type: text/plain "Basil L. Contovounesios" writes: > There's something about going through a complete create-join cycle more > than once within a non-main-thread which is triggering this behaviour. I'm not sure that it is related to threads. It looks, like some of your processes do not exit properly, and then thread-join is blocked. I've modified your example, again. It runs perfectly. And during its work, you could call "M-x list-threads" and see how the threads are created and die. Best regards, Michael. --=-=-= Content-Type: text/plain Content-Disposition: attachment diff -u /home/albinus/tmp/test.el.\~1\~ /home/albinus/tmp/test.el --- /home/albinus/tmp/test.el.~1~ 2018-10-16 14:46:47.000000000 +0200 +++ /home/albinus/tmp/test.el 2018-10-16 15:47:05.581276541 +0200 @@ -19,9 +19,9 @@ (defun test-slave () "Create an asynchronous process and wait for it to exit." (let ((proc (make-process - :name "test" + :name (thread-name (current-thread)) :buffer (generate-new-buffer " *test*") - :command '("wget" "-qO-" "https://en.wikipedia.org/wiki/Emacs") + :command `("echo" ,(thread-name (current-thread))) :connection-type 'pipe :sentinel #'test-sentinel))) (while (eq (process-status proc) 'run) @@ -32,10 +32,10 @@ "Successively run `test-slave'. With non-nil ASYNC, use a new thread for each invocation." (if async - (dotimes (_ 2) + (dotimes (i 100) (let (threads) - (dotimes (i 2) - (push (make-thread #'test-slave (format "test-%d" i)) threads)) + (dotimes (j 100) + (push (make-thread #'test-slave (format "test-%d-%d" i j)) threads)) (mapc #'thread-join threads))) (dotimes (_ 2) (test-slave)))) --=-=-=--