Subject: bug#36163: closed (27.0.50; `list-processes' assumes `thread-name' cannot return nil)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 11 Jun 2019 15:27:03 +0000

Your bug report

#36163: 27.0.50; `list-processes' assumes `thread-name' cannot return nil

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
36163: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=36163
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: 27.0.50; `list-processes' assumes `thread-name' cannot return nil
From: Paul Eggert <[email-masked]>
To: Pip Cet <[email-masked]>
Cc: [email-masked]
Date: Tue, 11 Jun 2019 08:26:23 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Thanks, I installed that patch.

Subject: 27.0.50; `list-processes' assumes `thread-name' cannot return nil
From: Pip Cet <[email-masked]>
To: [email-masked]
Date: Tue, 11 Jun 2019 07:03:41 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

In emacs -Q, run:

(make-thread (lambda ()
           (make-process :name "name" :command (list "/bin/sh" "-c"
"while true; do sleep 1; done"))
           (while t
         (thread-yield))))

Then use M-x list-processes. This results in an error as (thread-name
thread) returns nil for the thread, since the optional name argument to
make-thread hasn't been specified.

The attached patch fixes things.

diff --git a/lisp/simple.el b/lisp/simple.el
index 6bc3bc5304..cf537265bd 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4102,7 +4102,8 @@ list-processes--refresh
                       (null (process-thread p))
                       (not (fboundp 'thread-name))) "--")
                     ((eq (process-thread p) main-thread) "Main")
-                    ((thread-name (process-thread p)))))
+                    ((thread-name (process-thread p)))
+                    (t "--")))
                  (cmd
                   (if (memq type '(network serial))
                       (let ((contact (process-contact p t)))
diff --git a/lisp/simple.el b/lisp/simple.el
index 6bc3bc5304..cf537265bd 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4102,7 +4102,8 @@ list-processes--refresh
                       (null (process-thread p))
                       (not (fboundp 'thread-name))) "--")
                     ((eq (process-thread p) main-thread) "Main")
-                    ((thread-name (process-thread p)))))
+                    ((thread-name (process-thread p)))
+                    (t "--")))
 		  (cmd
 		   (if (memq type '(network serial))
 		       (let ((contact (process-contact p t)))