mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
services: herd: 'with-shepherd' no longer leaves an open connection.
* gnu/services/herd.scm (with-shepherd): Use 'dynamic-wind' and close CONNECTION at the end.
This commit is contained in:
parent
30875d07ef
commit
89a2647816
1 changed files with 7 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
|||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
|
@ -83,7 +83,12 @@ (define* (open-connection #:optional (file (%shepherd-socket-file)))
|
|||
(define-syntax-rule (with-shepherd connection body ...)
|
||||
"Evaluate BODY... with CONNECTION bound to an open socket to PID 1."
|
||||
(let ((connection (open-connection)))
|
||||
body ...))
|
||||
(dynamic-wind
|
||||
(const #t)
|
||||
(lambda ()
|
||||
body ...)
|
||||
(lambda ()
|
||||
(close-port connection)))))
|
||||
|
||||
(define-condition-type &shepherd-error &error
|
||||
shepherd-error?)
|
||||
|
|
Loading…
Reference in a new issue