|
@@ -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():
|
|
|
|
|
- """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.
|
|
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
|