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.be43719867e694a08699aa07c2f5f519df26b59b.mattst88@gentoo
1 commit: be43719867e694a08699aa07c2f5f519df26b59b
2 Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
3 AuthorDate: Sat Apr 18 04:33:52 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=be437198
7
8 catalyst: Add read/write_lock contextmanagers
9
10 Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
11
12 catalyst/lock.py | 20 ++++++++++++++++++++
13 1 file changed, 20 insertions(+)
14
15 diff --git a/catalyst/lock.py b/catalyst/lock.py
16 index ab005163..e31745b2 100644
17 --- a/catalyst/lock.py
18 +++ b/catalyst/lock.py
19 @@ -1,6 +1,8 @@
20
21 import os
22
23 +from contextlib import contextmanager
24 +
25 from snakeoil import fileutils
26 from snakeoil import osutils
27 from catalyst.fileops import ensure_dirs
28 @@ -36,3 +38,21 @@ class LockDir(Lock):
29 lockfile = os.path.join(lockdir, '.catalyst_lock')
30
31 Lock.__init__(self, lockfile)
32 +
33 +@contextmanager
34 +def read_lock(filename):
35 + lock = Lock(filename)
36 + lock.read_lock()
37 + try:
38 + yield
39 + finally:
40 + lock.unlock()
41 +
42 +@contextmanager
43 +def write_lock(filename):
44 + lock = Lock(filename)
45 + lock.write_lock()
46 + try:
47 + yield
48 + finally:
49 + lock.unlock()