mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-07-04 20:17:16 +00:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
13f323b2c2 |
23
event_log.py
23
event_log.py
@ -51,7 +51,6 @@ class EventLog(object):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""Initializes the event log."""
|
"""Initializes the event log."""
|
||||||
self._log = []
|
self._log = []
|
||||||
self._next_id = _EventIdGenerator()
|
|
||||||
self._parent = None
|
self._parent = None
|
||||||
|
|
||||||
def Add(self, name, task_name, start, finish=None, success=None,
|
def Add(self, name, task_name, start, finish=None, success=None,
|
||||||
@ -71,7 +70,7 @@ class EventLog(object):
|
|||||||
A dictionary of the event added to the log.
|
A dictionary of the event added to the log.
|
||||||
"""
|
"""
|
||||||
event = {
|
event = {
|
||||||
'id': (kind, next(self._next_id)),
|
'id': (kind, _NextEventId()),
|
||||||
'name': name,
|
'name': name,
|
||||||
'task_name': task_name,
|
'task_name': task_name,
|
||||||
'start_time': start,
|
'start_time': start,
|
||||||
@ -162,16 +161,16 @@ class EventLog(object):
|
|||||||
f.write('\n')
|
f.write('\n')
|
||||||
|
|
||||||
|
|
||||||
def _EventIdGenerator():
|
# An integer id that is unique across this invocation of the program.
|
||||||
"""Returns multi-process safe iterator that generates locally unique id.
|
_EVENT_ID = multiprocessing.Value('i', 1)
|
||||||
|
|
||||||
Yields:
|
def _NextEventId():
|
||||||
|
"""Helper function for grabbing the next unique id.
|
||||||
|
|
||||||
|
Returns:
|
||||||
A unique, to this invocation of the program, integer id.
|
A unique, to this invocation of the program, integer id.
|
||||||
"""
|
"""
|
||||||
eid = multiprocessing.Value('i', 1)
|
with _EVENT_ID.get_lock():
|
||||||
|
val = _EVENT_ID.value
|
||||||
while True:
|
_EVENT_ID.value += 1
|
||||||
with eid.get_lock():
|
return val
|
||||||
val = eid.value
|
|
||||||
eid.value += 1
|
|
||||||
yield val
|
|
||||||
|
Reference in New Issue
Block a user