summaryrefslogtreecommitdiff
path: root/bitbake-dev/lib
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake-dev/lib')
-rw-r--r--bitbake-dev/lib/bb/event.py5
-rw-r--r--bitbake-dev/lib/bb/runqueue.py12
2 files changed, 15 insertions, 2 deletions
diff --git a/bitbake-dev/lib/bb/event.py b/bitbake-dev/lib/bb/event.py
index e5cae275ac..8f0a1961df 100644
--- a/bitbake-dev/lib/bb/event.py
+++ b/bitbake-dev/lib/bb/event.py
@@ -25,12 +25,17 @@ BitBake build tools.
import os, re
import bb.utils
+# This is the pid for which we should generate the event. This is set when
+# the runqueue forks off.
+worker_pid = 0
+
class Event:
"""Base class for events"""
type = "Event"
def __init__(self, d):
self._data = d
+ self.pid = worker_pid
def getData(self):
return self._data
diff --git a/bitbake-dev/lib/bb/runqueue.py b/bitbake-dev/lib/bb/runqueue.py
index 26e4c32f88..1667205829 100644
--- a/bitbake-dev/lib/bb/runqueue.py
+++ b/bitbake-dev/lib/bb/runqueue.py
@@ -971,8 +971,6 @@ class RunQueue:
self.stats.taskSkipped()
continue
- bb.event.fire(runQueueTaskStarted(task, self.stats, self, self.cfgData))
- bb.msg.note(1, bb.msg.domain.RunQueue, "Running task %d of %d (ID: %s, %s)" % (self.stats.completed + self.stats.active + 1, self.stats.total, task, self.get_user_idstring(task)))
sys.stdout.flush()
sys.stderr.flush()
try:
@@ -980,6 +978,16 @@ class RunQueue:
except OSError, e:
bb.msg.fatal(bb.msg.domain.RunQueue, "fork failed: %d (%s)" % (e.errno, e.strerror))
if pid == 0:
+ # Save out the PID so that the event can include it the
+ # events
+ bb.event.worker_pid = os.getpid()
+
+ bb.event.fire(runQueueTaskStarted(task, self.stats, self, self.cfgData))
+ bb.msg.note(1, bb.msg.domain.RunQueue,
+ "Running task %d of %d (ID: %s, %s)" % (self.stats.completed + self.stats.active + 1,
+ self.stats.total,
+ task,
+ self.get_user_idstring(task)))
self.state = runQueueChildProcess
# Make the child the process group leader
os.setpgid(0, 0)