lix/src/libutil
eldritch horrors 3d155fc509 libutil: give Pid proper resource semantics
copy-constructing or assigning from pid_t can easily lead to duplicate
Pid instances for the same process if a pid_t was used carelessly, and
Pid itself was copy-constructible. both could cause surprising results
such as killing processes twice (which could become very problemantic,
but luckily modern systems don't reuse PIDs all that quickly), or more
than one piece of the code believing it owns a process when neither do

Change-Id: Ifea7445f84200b34c1a1d0acc2cdffe0f01e20c6
2024-06-23 11:52:49 +00:00
..
args libutil: fix args assert being thrown on Darwin in nix-eval-jobs 2024-05-31 12:17:06 +00:00
abstract-setting-to-json.hh HOT SALE: 15% off your build times! 2024-03-27 03:52:57 +00:00
ansicolor.hh Finish converting existing comments for internal API docs (#8146) 2023-04-07 13:55:28 +00:00
archive.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
archive.hh util.{hh,cc}: Split out file-system.{hh,cc} 2024-05-29 09:54:47 +02:00
args.cc libutil: fix args assert being thrown on Darwin in nix-eval-jobs 2024-05-31 12:17:06 +00:00
args.hh libutil: fix args assert being thrown on Darwin in nix-eval-jobs 2024-05-31 12:17:06 +00:00
box_ptr.hh Add box_ptr: nonnull unique_ptr with value semantics 2024-03-11 01:04:52 -07:00
canon-path.cc util.{hh,cc}: Split out file-system.{hh,cc} 2024-05-29 09:54:47 +02:00
canon-path.hh Merge remote-tracking branch 'upstream/master' into source-path 2023-04-17 11:41:50 +02:00
cgroup.cc util.{hh,cc}: Split out strings.{hh,cc} 2024-05-29 11:01:34 +02:00
cgroup.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
chunked-vector.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
closure.hh libutil: de-callback-ify computeClosure 2024-05-07 14:35:20 +00:00
comparator.hh util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
compression.cc BrotliDecompressionSource: don't bail out too early 2024-06-20 09:21:13 +03:00
compression.hh libutil: add makeDecompressionSource 2024-06-19 10:50:12 +00:00
compute-levels.cc Add x86_64 compute levels as additional system types 2021-02-22 09:11:15 +01:00
compute-levels.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
config-impl.hh util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
config.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
config.hh chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
current-process.cc Remove 100s of CPU time (10%) from build times (1465s -> 1302s) 2024-05-29 22:16:15 -07:00
current-process.hh util.{hh,cc}: Split out current-process.{hh,cc} 2024-05-29 11:01:34 +02:00
english.cc Unify and refactor value printing 2024-03-09 03:50:06 +01:00
english.hh pragma once and ///@file everything missing it 2024-04-08 15:40:12 -07:00
environment-variables.cc util.{hh,cc}: Split out environment-variables.{hh,cc} 2024-05-28 11:29:29 +02:00
environment-variables.hh util.{hh,cc}: Split out environment-variables.{hh,cc} 2024-05-28 11:29:29 +02:00
error.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
error.hh libmain: fix UB in verbosity assignment 2024-06-18 19:26:54 -07:00
escape-char.cc Move DebugChar into its own file 2024-03-28 15:54:12 -07:00
escape-char.hh pragma once and ///@file everything missing it 2024-04-08 15:40:12 -07:00
escape-string.cc Add EscapeStringOptions and escapeString tests 2024-04-03 16:25:54 +00:00
escape-string.hh pragma once and ///@file everything missing it 2024-04-08 15:40:12 -07:00
exit.cc :quit in the debugger should quit the whole program 2024-03-09 10:17:26 -07:00
exit.hh pragma once and ///@file everything missing it 2024-04-08 15:40:12 -07:00
experimental-features-json.hh HOT SALE: 15% off your build times! 2024-03-27 03:52:57 +00:00
experimental-features.cc chore: rebrand Nix to Lix when it makes sense 2024-06-01 20:31:24 +02:00
experimental-features.hh HOT SALE: 15% off your build times! 2024-03-27 03:52:57 +00:00
file-descriptor.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
file-descriptor.hh util.{hh,cc}: Split out unix-domain-socket.{hh,cc} 2024-05-29 11:01:34 +02:00
file-system.cc libutil: return a source from readFile 2024-06-19 10:50:12 +00:00
file-system.hh libutil: return a source from readFile 2024-06-19 10:50:12 +00:00
finally.hh libutil: guard Finally against invalid exception throws 2024-04-05 20:13:02 +00:00
fmt.hh libutil: Set boost defines for FreeBSD 2024-06-16 03:41:15 +00:00
git.cc Fix the parsing of the sourcehut refs file 2022-05-04 14:38:59 +02:00
git.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
hash.cc libutil: return a source from readFile 2024-06-19 10:50:12 +00:00
hash.hh util.{hh,cc}: Split out file-system.{hh,cc} 2024-05-29 09:54:47 +02:00
hilite.cc Fix incorrect comment in hiliteMatches 2022-06-05 20:30:18 +02:00
hilite.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
input-accessor.hh util.{hh,cc}: Split out file-system.{hh,cc} 2024-05-29 09:54:47 +02:00
json-impls.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
json-utils.cc Fix derivation load assertion errors 2023-08-05 01:34:30 +02:00
json-utils.hh fix: nlohmann::adl_serializer for std::optional (#9147) 2024-03-04 07:11:25 +01:00
lix-util.pc.in packaging: rename nixexpr -> lixexpr and so on 2024-05-23 16:45:23 -06:00
logging-json.hh HOT SALE: 15% off your build times! 2024-03-27 03:52:57 +00:00
logging.cc libmain: fix UB in verbosity assignment 2024-06-18 19:26:54 -07:00
logging.hh libmain: add progress bar with multiple status lines 2024-06-22 14:20:27 +02:00
lru-cache.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
meson.build build: expose option to enable or disable precompiled std headers 2024-06-06 12:46:26 -06:00
monitor-fd.hh util.hh: split out signals stuff 2024-03-11 00:52:09 -07:00
namespaces.cc libutil: give Pid proper resource semantics 2024-06-23 11:52:49 +00:00
namespaces.hh util.{hh,cc}: Split out namespaces.{hh,cc} 2024-05-29 11:41:16 +02:00
pool.hh Revert "libutil: drop Pool resources on exceptional free" 2024-04-05 20:13:02 +00:00
position.cc match line endings used by parser and error reports 2024-03-18 16:12:46 +01:00
position.hh match line endings used by parser and error reports 2024-03-18 16:12:46 +01:00
print-elided.cc Move escapeString to its own file 2024-03-29 16:26:29 -07:00
print-elided.hh pragma once and ///@file everything missing it 2024-04-08 15:40:12 -07:00
processes.cc libutil: give Pid proper resource semantics 2024-06-23 11:52:49 +00:00
processes.hh libutil: give Pid proper resource semantics 2024-06-23 11:52:49 +00:00
ref.hh add and fix -Wdeprecated-copy 2024-05-09 13:02:45 +00:00
references.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
references.hh Don't assume the type of string::size_type 2023-06-15 21:24:14 +02:00
regex-combinators.hh util.{hh,cc}: Split out strings.{hh,cc} 2024-05-29 11:01:34 +02:00
regex.cc gc: Find roots using libproc on Darwin 2024-04-25 23:24:21 -04:00
regex.hh gc: Find roots using libproc on Darwin 2024-04-25 23:24:21 -04:00
repair-flag.hh Merge pull request #9634 from 9999years/combine-abstract-pos-and-pos 2024-03-05 23:46:18 -07:00
serialise.cc libutil: remove sinkToSource eof callback 2024-06-23 11:52:49 +00:00
serialise.hh libutil: remove sinkToSource eof callback 2024-06-23 11:52:49 +00:00
shlex.cc util.{hh,cc}: Split out strings.{hh,cc} 2024-05-29 11:01:34 +02:00
shlex.hh pragma once and ///@file everything missing it 2024-04-08 15:40:12 -07:00
signals.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
signals.hh util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
source-path.cc Fix various clang-tidy lints 2024-03-29 20:26:38 -07:00
source-path.hh util.{hh,cc}: Split out file-system.{hh,cc} 2024-05-29 09:54:47 +02:00
split.hh util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
strings.cc Remove 100s of CPU time (10%) from build times (1465s -> 1302s) 2024-05-29 22:16:15 -07:00
strings.hh Remove 100s of CPU time (10%) from build times (1465s -> 1302s) 2024-05-29 22:16:15 -07:00
suggestions.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
suggestions.hh util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
sync.hh libutil: tidy Sync and fix its move constructor 2024-06-18 15:11:31 -07:00
tarfile.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
tarfile.hh TarArchive: Remove a duplicate constant and increase the buffer size 2023-04-25 16:43:10 +02:00
terminal.cc util.{hh,cc}: Split out terminal.{hh,cc} 2024-05-29 09:54:47 +02:00
terminal.hh util.{hh,cc}: Split out terminal.{hh,cc} 2024-05-29 09:54:47 +02:00
thread-pool.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
thread-pool.hh util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
topo-sort.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
types.hh util.hh: Move stuff to types.hh 2024-05-29 11:42:42 +02:00
unix-domain-socket.cc libutil: give Pid proper resource semantics 2024-06-23 11:52:49 +00:00
unix-domain-socket.hh util.{hh,cc}: Split out unix-domain-socket.{hh,cc} 2024-05-29 11:01:34 +02:00
url-name.cc util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
url-name.hh util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
url-parts.hh implement parsing human-readable names from URLs 2024-04-30 18:11:14 -06:00
url.cc util.{hh,cc}: Split out strings.{hh,cc} 2024-05-29 11:01:34 +02:00
url.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00
users.cc util.{hh,cc}: Split out users.{hh,cc} 2024-05-29 11:01:34 +02:00
users.hh util.{hh,cc}: Split out users.{hh,cc} 2024-05-29 11:01:34 +02:00
variant-wrapper.hh Fixing #7479 2023-08-18 11:44:00 -04:00
xml-writer.cc xml-writer: Remove std aliases 2022-02-25 16:13:02 +01:00
xml-writer.hh Ensure all headers have #pragma once and are in API docs 2023-03-31 23:19:44 -04:00