mirror of
https://gerrit.googlesource.com/git-repo
synced 2025-07-02 20:17:19 +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):
|
||||
"""Initializes the event log."""
|
||||
self._log = []
|
||||
self._next_id = _EventIdGenerator()
|
||||
self._parent = 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.
|
||||
"""
|
||||
event = {
|
||||
'id': (kind, next(self._next_id)),
|
||||
'id': (kind, _NextEventId()),
|
||||
'name': name,
|
||||
'task_name': task_name,
|
||||
'start_time': start,
|
||||
@ -162,16 +161,16 @@ class EventLog(object):
|
||||
f.write('\n')
|
||||
|
||||
|
||||
def _EventIdGenerator():
|
||||
"""Returns multi-process safe iterator that generates locally unique id.
|
||||
# An integer id that is unique across this invocation of the program.
|
||||
_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.
|
||||
"""
|
||||
eid = multiprocessing.Value('i', 1)
|
||||
|
||||
while True:
|
||||
with eid.get_lock():
|
||||
val = eid.value
|
||||
eid.value += 1
|
||||
yield val
|
||||
with _EVENT_ID.get_lock():
|
||||
val = _EVENT_ID.value
|
||||
_EVENT_ID.value += 1
|
||||
return val
|
||||
|
Reference in New Issue
Block a user