diff piecrust/processing/pipeline.py @ 442:171dde4f61dc

performance: Add profiling to the asset pipeline workers.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 28 Jun 2015 14:52:58 -0700
parents 6238dcfc7a78
children aefe70229fdd
line wrap: on
line diff
--- a/piecrust/processing/pipeline.py	Sun Jun 28 14:52:37 2015 -0700
+++ b/piecrust/processing/pipeline.py	Sun Jun 28 14:52:58 2015 -0700
@@ -255,12 +255,19 @@
         ctx.pool.queue.put_nowait(job)
 
     def _createWorkerPool(self):
+        import sys
+
+        main_module = sys.modules['__main__']
+        is_profiling = os.path.basename(main_module.__file__) in [
+                'profile.py', 'cProfile.py']
+
         pool = _WorkerPool()
         for i in range(self.num_workers):
             ctx = ProcessingWorkerContext(
                     self.app.root_dir, self.out_dir, self.tmp_dir,
                     pool.queue, pool.results, pool.abort_event,
                     self.force, self.app.debug)
+            ctx.is_profiling = is_profiling
             ctx.enabled_processors = self.enabled_processors
             ctx.additional_processors = self.additional_processors
             w = multiprocessing.Process(