| OLD | NEW |
| 1 # Copyright 2015 The LUCI 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 under the Apache License, Version 2.0 |
| 3 # found in the LICENSE file. | 3 # that can be 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 |
| 12 | 12 |
| 13 if sys.platform == 'win32': | 13 if sys.platform == 'win32': |
| (...skipping 74 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 |