OLD | NEW |
1 # Copyright 2015 The Swarming Authors. All rights reserved. | 1 # Copyright 2015 The LUCI Authors. All rights reserved. |
2 # Use of this source code is governed by the Apache v2.0 license that can be | 2 # Use of this source code is governed by the Apache v2.0 license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Implements a singleton.""" | 5 """Implements a singleton.""" |
6 | 6 |
7 import contextlib | 7 import contextlib |
8 import logging | 8 import logging |
9 import os | 9 import os |
10 import sys | 10 import sys |
11 | 11 |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 | 88 |
89 @contextlib.contextmanager | 89 @contextlib.contextmanager |
90 def singleton(rootdir): | 90 def singleton(rootdir): |
91 s = Singleton(rootdir) | 91 s = Singleton(rootdir) |
92 acquired = s.acquire() | 92 acquired = s.acquire() |
93 try: | 93 try: |
94 yield acquired | 94 yield acquired |
95 finally: | 95 finally: |
96 if acquired: | 96 if acquired: |
97 s.release() | 97 s.release() |
OLD | NEW |