#pragma once #include "types.hh" namespace nix { /* Open (possibly create) a lock file and return the file descriptor. -1 is returned if create is false and the lock could not be opened because it doesn't exist. Any other error throws an exception. */ int openLockFile(const Path & path, bool create); /* Delete an open lock file. */ void deleteLockFile(const Path & path, int fd); enum LockType { ltRead, ltWrite, ltNone }; bool lockFile(int fd, LockType lockType, bool wait); class PathLocks { private: typedef std::pair FDPair; list fds; bool deletePaths; public: PathLocks(); PathLocks(const PathSet & paths, const string & waitMsg = ""); bool lockPaths(const PathSet & _paths, const string & waitMsg = "", bool wait = true); ~PathLocks(); void unlock(); void setDeletion(bool deletePaths); }; bool pathIsLockedByMe(const Path & path); } tr>Wojtek's customized Guix
aboutsummaryrefslogtreecommitdiff
AgeCommit message (Expand)Author
2019-07-08gnu: bdb: Add 4.8.30....* gnu/packages/dbm.scm (bdb-4.8): New variable. [arguments]: Configure and build from 'build_unix' directory as mentioned in documentation. (bdb-5.3): Inherit from bdb-4.8. (bdb-6): Inherit from bdb-4.8. (bdb): Point to bdb-6. Carl Dong
2019-02-11gnu: gdbm: Update to 1.18.1....* gnu/packages/dbm.scm (gdbm): Update to 1.18.1. Marius Bakke
2019-01-16gnu: Move dbm databases to new module....* gnu/packages/databases.scm (gdbm, bdb, bdb-5.3): Move from here... * gnu/packages/dbm.scm: ...to this new module. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * gnu/packages/audio.scm, gnu/packages/avahi.scm, gnu/packages/backup.scm, gnu/packages/cobol.scm, gnu/packages/cyrus-sasl.scm, gnu/packages/databases.scm, gnu/packages/finance.scm, gnu/packages/game-development.scm, gnu/packages/gnome.scm, gnu/packages/guile.scm, gnu/packages/ibus.scm, gnu/packages/kerberos.scm, gnu/packages/linux.scm, gnu/packages/mail.scm, gnu/packages/man.scm, gnu/packages/nvi.scm, gnu/packages/openldap.scm, gnu/packages/package-management.scm, gnu/packages/php.scm, gnu/packages/pulseaudio.scm, gnu/packages/python.scm, gnu/packages/rdf.scm, gnu/packages/ruby.scm, gnu/packages/sawfish.scm: Update module references. Ricardo Wurmus