Log lock waits for task adding in WorkerManager

This commit is contained in:
shortcutme 2019-12-21 02:56:42 +01:00
parent 7ca09ba75b
commit 0881e274a9
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
2 changed files with 26 additions and 1 deletions

24
src/Debug/DebugLock.py Normal file
View file

@ -0,0 +1,24 @@
import time
import logging
import gevent.lock
from Debug import Debug
class DebugLock:
def __init__(self, log_after=0.01, name="Lock"):
self.name = name
self.log_after = log_after
self.lock = gevent.lock.Semaphore(1)
self.release = self.lock.release
def acquire(self, *args, **kwargs):
s = time.time()
res = self.lock.acquire(*args, **kwargs)
time_taken = time.time() - s
if time_taken >= self.log_after:
logging.debug("%s: Waited %.3fs after called by %s" %
(self.name, time_taken, Debug.formatStack())
)
return res