mirror of
https://github.com/microsoft/debugpy.git
synced 2025-12-23 08:48:12 +00:00
Add acuire_with_timeout().
This commit is contained in:
parent
f31682bc06
commit
7d61b6fbd4
1 changed files with 17 additions and 1 deletions
|
|
@ -1,9 +1,25 @@
|
|||
from __future__ import absolute_import
|
||||
|
||||
import sys
|
||||
import threading
|
||||
import time
|
||||
import warnings
|
||||
|
||||
|
||||
if sys.version_info < (3,):
|
||||
def acquire_with_timeout(lock, timeout):
|
||||
segments = int(timeout * 10) + 1
|
||||
for _ in range(segments):
|
||||
if lock.acquire(False):
|
||||
return True
|
||||
time.sleep(0.1)
|
||||
else:
|
||||
return False
|
||||
else:
|
||||
def acquire_with_timeout(lock, timeout):
|
||||
return lock.acquire(timeout=timeout)
|
||||
|
||||
|
||||
def get_locked_and_waiter(timeout=1.0):
|
||||
_timeout = timeout
|
||||
lock = threading.Lock()
|
||||
|
|
@ -12,7 +28,7 @@ def get_locked_and_waiter(timeout=1.0):
|
|||
def wait(timeout=_timeout, reason=None):
|
||||
if timeout is None:
|
||||
timeout = _timeout
|
||||
if lock.acquire(timeout=timeout):
|
||||
if acquire_with_timeout(lock, timeout):
|
||||
lock.release()
|
||||
else:
|
||||
msg = 'timed out waiting'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue