guix-play/guix/store
Caleb Ristvedt 8971f626f2
database: separate transaction-handling and retry-handling.
Previously call-with-transaction would both retry when SQLITE_BUSY errors were
thrown and do what its name suggested (start and rollback/commit a
transaction).  This changes it to do only what its name implies, which
simplifies its implementation.  Retrying is provided by the new
call-with-SQLITE_BUSY-retrying procedure.

* guix/store/database.scm (call-with-transaction): no longer restarts, new
  #:restartable? argument controls whether "begin" or "begin immediate" is
  used.
  (call-with-SQLITE_BUSY-retrying, call-with-retrying-transaction,
  call-with-retrying-savepoint): new procedures.
  (register-items): use call-with-retrying-transaction to preserve old
  behavior.

* .dir-locals.el (call-with-retrying-transaction,
  call-with-retrying-savepoint): add indentation information.
2020-06-10 21:54:35 -05:00
..
database.scm database: separate transaction-handling and retry-handling. 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