summary refs log tree commit diff
path: root/nix
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-03-15 13:41:18 +0100
committerLudovic Courtès <ludo@gnu.org>2017-03-15 15:19:53 +0100
commit70dfdd501af46b0db138f3e289523e2d43c8e76d (patch)
treeb465246ba6e1e9e728ec7977852602c46fa8913c /nix
parent81a0f1cdf12e7bcc34c1203f034a323fa8f52cf5 (diff)
downloadguix-70dfdd501af46b0db138f3e289523e2d43c8e76d.tar.gz
syscalls: Adjust 'clone' to Guile 2.2.
Before that, something like:

  (call-with-container
    (lambda ()
      (match (primitive-fork)
        …)))

would hang in 'primitive-fork' as the child process (the one started in
the container) would try to pthread_join the finalization thread in
'stop_finalization_thread' in libguile, not knowing that this thread is
nonexistent.

* guix/build/syscalls.scm (%set-automatic-finalization-enabled?!): New
procedure.
(without-automatic-finalization): New macro.
(clone): Wrap PROC call in 'without-automatic-finalization'.
Diffstat (limited to 'nix')
0 files changed, 0 insertions, 0 deletions