X-Git-Url: http://dolda2000.com/gitweb/?p=pdm.git;a=blobdiff_plain;f=pdm%2Fperf.py;h=34db2ea56c142568a6180b284d82803e5a8a2c2f;hp=de2dba5450a3d7f25c2e1fe9cafea43cfbe7410e;hb=709446f68b088f46f070c3e79342975a9af6b601;hpb=87b07b36f1db22383d75ad59f6bf8e48bf03f54f diff --git a/pdm/perf.py b/pdm/perf.py index de2dba5..34db2ea 100644 --- a/pdm/perf.py +++ b/pdm/perf.py @@ -100,21 +100,32 @@ class event(object): idlock = threading.Lock() procevid = 0 -class startevent(event): + +def getprocid(): + global procevid + idlock.acquire() + try: + ret = procevid + procevid += 1 + return ret + finally: + idlock.release() + +class procevent(event): + def __init__(self, id): + super(procevent, self).__init__() + if isinstance(id, procevent): + self.id = id.id + else: + self.id = id + +class startevent(procevent): def __init__(self): - super(startevent, self).__init__() - global procevid - idlock.acquire() - try: - self.id = procevid - procevid += 1 - finally: - idlock.release() - -class finishevent(event): + super(startevent, self).__init__(getprocid()) + +class finishevent(procevent): def __init__(self, start, aborted): - super(finishevent, self).__init__() - self.id = start.id + super(finishevent, self).__init__(start) self.aborted = aborted sysres = staticdir()