Subject: bug#40206: guile should delete unix listen socket when quit

From: Arun Isaac <[email-masked]>
Date: Tue, 24 Mar 2020 13:50:37 +0530

Suppose I start guile to listen on a unix socket /tmp/guile like so:

$ guile --listen=/tmp/guile

When I quit guile, the socket file still remains. The next time I start
guile to listen on /tmp/guile, guile errors out with the following
error. It would be better if guile deleted the socket file on quitting.

--8<---------------cut here---------------start------------->8---
Backtrace:
           5 (apply-smob/1 #<catch-closure 7f1da4749340>)
In ice-9/boot-9.scm:
    705:2  4 (call-with-prompt ("prompt") #<procedure 7f1da2eaf4c0 …> …)
In ice-9/eval.scm:
    619:8  3 (_ #(#(#<directory (guile-user) 7f1da43d9140>)))
    155:9  2 (_ #(#(#<directory (guile-user) 7f1da43d9140>)))
In system/repl/server.scm:
     86:4  1 (make-unix-domain-server-socket #:path _)
In unknown file:
           0 (bind #<input-output: socket 9> 1 "/tmp/guile")

ERROR: In procedure bind:
In procedure bind: Address already in use
--8<---------------cut here---------------end--------------->8---