~ruther/guix-local

1428926f1f0d7577cd2de8d019a27f8082855d03 — Jan (janneke) Nieuwenhuizen 6 years ago 4c26229
syscalls: set-thread-name, thread-name: Stub for the Hurd.

Avoid crash

    Backtrace:
    guix/build/syscalls.scm:405:8: In procedure prctl: Function not implemented

because of missing prctl on the Hurd.

* guix/build/syscalls.scm (set-thread-name, thread-name): Rename to ...
(set-thread-name!/linux,thread-name/linux): ...this.
(set-thread-name, thread-name): Swtich between linux implementation and or
stub.
1 files changed, 12 insertions(+), 2 deletions(-)

M guix/build/syscalls.scm
M guix/build/syscalls.scm => guix/build/syscalls.scm +12 -2
@@ 1218,7 1218,7 @@ handler if the lock is already held by another process."
  ;; zero.
  16)

(define (set-thread-name name)
(define (set-thread-name!/linux name)
  "Set the name of the calling thread to NAME.  NAME is truncated to 15
bytes."
  (let ((ptr (string->pointer name)))


@@ 1231,7 1231,7 @@ bytes."
               (list (strerror err))
               (list err))))))

(define (thread-name)
(define (thread-name/linux)
  "Return the name of the calling thread as a string."
  (let ((buf (make-bytevector %max-thread-name-length)))
    (let-values (((ret err)


@@ 1245,6 1245,16 @@ bytes."
                 (list (strerror err))
                 (list err))))))

(define set-thread-name
  (if (string-contains %host-type "linux")
      set-thread-name!/linux
      (cute const #f)))

(define thread-name
  (if (string-contains %host-type "linux")
      thread-name/linux
      (cute const "")))


;;;
;;; Network interfaces.