1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-25 03:39:36 +01:00
Nix, the purely functional package manager
Find a file
Moritz Angermann 0e18254aa8
Fix shutdown behavior and resource management for recursive-nix on macOS
Previously, we relied on the `shutdown()` function to terminate `accept()`
calls on a listening socket. However, this approach did not work on macOS as
the waiting `accept()` call is not considered a connected socket, resulting in
an `ENOTCONN` error. Instead, we now close the listening socket to terminate
the `accept()` call.

Additionally, we fixed a resource management issue where we set the
`daemonSocket` variable to -1, triggering resource cleanup and causing the
`stopDaemon` function to be called twice. This resulted in errors as the socket
was already closed by the time the second `stopDaemon` call was made. Instead of
setting `daemonSocket` to -1, we now release the socket using the `release()`
method on a unique pointer. This properly transfers ownership and allows for
correct resource cleanup.

These changes ensure proper behavior and resource management for the
recursive-nix feature on macOS.
2023-04-25 09:39:05 +08:00
.github Merge pull request #8153 from obsidiansystems/more-labeler 2023-04-11 12:10:34 +02:00
config
contrib
doc Update installing-binary.md 2023-04-18 13:18:30 +03:00
m4
maintainers Merge pull request #7579 from fricklerhandwerk/review-process 2023-04-05 01:57:17 +02:00
misc
mk Enable -Werror=switch-enum 2023-04-03 18:45:20 +02:00
perl Merge pull request #3746 from obsidiansystems/path-info 2023-04-17 15:49:48 +02:00
scripts
src Fix shutdown behavior and resource management for recursive-nix on macOS 2023-04-25 09:39:05 +08:00
tests Fix shutdown behavior and resource management for recursive-nix on macOS 2023-04-25 09:39:05 +08:00
.dir-locals.el
.editorconfig
.gitignore Single page for experimental feature descriptions 2023-04-09 11:01:23 -04:00
.version Bump version 2023-04-11 20:16:37 +02:00
boehmgc-coroutine-sp-fallback.diff Always disable GC in a coroutine unless the patch is applied 2023-04-07 14:54:38 +02:00
bootstrap.sh
configure.ac Merge pull request #7732 from hercules-ci/make-initLibStore-viable-alternative 2023-04-17 08:04:41 -04:00
CONTRIBUTING.md
COPYING
default.nix
docker.nix docker.nix: add an option to include flake-registry inside docker image (#6750) 2023-03-22 20:55:02 +01:00
flake.lock
flake.nix fix failing configure in nix-tests 2023-04-09 02:33:53 +02:00
local.mk Enable -Werror=switch-enum 2023-04-03 18:45:20 +02:00
Makefile
Makefile.config.in
precompiled-headers.h
README.md
shell.nix

Nix

Open Collective supporters Test

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. Please refer to the Nix manual for more details.

Installation

On Linux and macOS the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl -L https://nixos.org/nix/install | sh

Information on additional installation methods is available on the Nix download page.

Building And Developing

See our Hacking guide in our manual for instruction on how to to set up a development environment and build Nix from source.

Additional Resources

License

Nix is released under the LGPL v2.1.