guix-play/guix/store
Caleb Ristvedt 37545de4a3
database: ensure update-or-insert is run within a transaction
update-or-insert can break if an insert occurs between when it decides whether
to update or insert and when it actually performs that operation.  Putting the
check and the update/insert operation in the same transaction ensures that the
update/insert will only succeed if no other write has occurred in the middle.

* guix/store/database.scm (call-with-savepoint): new procedure.
  (update-or-insert): use call-with-savepoint to ensure the read and the
  insert/update occur within the same transaction.
2020-06-10 21:54:35 -05:00
..
database.scm database: ensure update-or-insert is run within a transaction 2020-06-10 21:54:35 -05:00
deduplication.scm deduplication: Use nix-base32 encoding for link names. 2020-02-22 00:46:06 +01:00
roots.scm daemon: Invoke 'guix gc --list-busy' instead of 'list-runtime-roots'. 2019-09-08 11:49:24 +02:00
schema.sql database: 'with-database' can now initialize new databases. 2018-06-14 11:16:58 +02:00
ssh.scm store: Support 'ssh://' URIs in 'GUIX_DAEMON_SOCKET'. 2017-04-21 19:17:36 +02:00