lix/src
Eelco Dolstra 28d5b5cd45 Fix deadlock between auto-GC and addTempRoot()
Previously addTempRoot() acquired the LocalStore state lock and waited
for the garbage collector to reply. If the garbage collector is in the
same process (as it the case with auto-GC), this would deadlock as
soon as the garbage collector thread needs the LocalStore state lock.

So now addTempRoot() uses separate Syncs for the state that it
needs. As long at the auto-GC thread doesn't call addTempRoot() (which
it shouldn't), it shouldn't deadlock.

Fixes #3224.
2023-01-03 15:20:21 +01:00
..
build-remote build-remote: Add brackets to error message 2022-11-04 10:49:44 -07:00
libcmd Merge remote-tracking branch 'origin/master' into coerce-string 2023-01-02 20:53:39 +01:00
libexpr Don't use state.positions[noPos] 2023-01-02 20:53:58 +01:00
libfetchers Allow to disable global flake-registry with "" 2022-12-12 15:32:02 +01:00
libmain Put the --show-trace hint in the logical place 2023-01-02 20:53:58 +01:00
libstore Fix deadlock between auto-GC and addTempRoot() 2023-01-03 15:20:21 +01:00
libutil Put the --show-trace hint in the logical place 2023-01-02 20:53:58 +01:00
nix Merge remote-tracking branch 'origin/master' into coerce-string 2023-01-02 20:53:39 +01:00
nix-build nix-build: remove unused --add-root arg 2022-09-27 00:07:42 +02:00
nix-channel Fix segfault in headerCallback() 2022-03-03 11:11:16 +01:00
nix-collect-garbage Add missing rethrows in conditional exception handlers 2022-06-10 10:52:41 -07:00
nix-copy-closure copyPaths: Pass store by reference 2021-07-22 09:59:51 +02:00
nix-env Merge remote-tracking branch 'origin/master' into coerce-string 2023-01-02 20:53:39 +01:00
nix-instantiate Revert to copyStore = true for nix-instantiate and nix-env 2022-08-23 14:40:27 +02:00
nix-store Fix unused variable warning 2022-12-12 16:41:46 +01:00
resolve-system-dependencies Get rid of most .at calls (#6393) 2022-05-04 07:44:32 +02:00
toml11 Replace cpptoml with toml11 2021-12-17 22:03:33 +01:00