Gentoo Archives: gentoo-commits

From: Matt Turner <mattst88@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/catalyst:master commit in: catalyst/
Date: Thu, 30 Apr 2020 22:56:26
Message-Id: 1587666035.562a9dddee7038804e6c17d8da79262ad45deaf5.mattst88@gentoo
1 commit: 562a9dddee7038804e6c17d8da79262ad45deaf5
2 Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
3 AuthorDate: Sat Apr 18 01:27:31 2020 +0000
4 Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
5 CommitDate: Thu Apr 23 18:20:35 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/catalyst.git/commit/?id=562a9ddd
7
8 catalyst: Add a Lock class and refactor LockDir
9
10 This allows us to make lock files directly.
11
12 Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
13
14 catalyst/lock.py | 29 ++++++++++++++++++-----------
15 1 file changed, 18 insertions(+), 11 deletions(-)
16
17 diff --git a/catalyst/lock.py b/catalyst/lock.py
18 index 5e039fae..ab005163 100644
19 --- a/catalyst/lock.py
20 +++ b/catalyst/lock.py
21 @@ -8,17 +8,14 @@ from catalyst.fileops import ensure_dirs
22
23 LockInUse = osutils.LockException
24
25 -
26 -class LockDir():
27 - """An object that creates locks inside dirs"""
28 -
29 - def __init__(self, lockdir):
30 - self.gid = 250
31 - self.lockfile = os.path.join(lockdir, '.catalyst_lock')
32 - ensure_dirs(lockdir)
33 - fileutils.touch(self.lockfile, mode=0o664)
34 - os.chown(self.lockfile, -1, self.gid)
35 - self.lock = osutils.FsLock(self.lockfile)
36 +class Lock:
37 + """
38 + A fnctl-based filesystem lock
39 + """
40 + def __init__(self, lockfile):
41 + fileutils.touch(lockfile, mode=0o664)
42 + os.chown(lockfile, uid=-1, gid=250)
43 + self.lock = osutils.FsLock(lockfile)
44
45 def read_lock(self):
46 self.lock.acquire_read_lock()
47 @@ -29,3 +26,13 @@ class LockDir():
48 def unlock(self):
49 # Releasing a write lock is the same as a read lock.
50 self.lock.release_write_lock()
51 +
52 +class LockDir(Lock):
53 + """
54 + A fnctl-based filesystem lock in a directory
55 + """
56 + def __init__(self, lockdir):
57 + ensure_dirs(lockdir)
58 + lockfile = os.path.join(lockdir, '.catalyst_lock')
59 +
60 + Lock.__init__(self, lockfile)