_scheduler: don't pass whole queue to child job

Stop passing the scheduler's job queue's across to child jobs, via the 'action_cb' parameter. Instead pass a module-level function, which will pickle nicely.

This isn't much of a problem while we are in the 'fork' multiprocessing model. As we move towards supporting the 'spawn' model for win32, then we need to consider what we will be pickling and unpickling, to cross the process boundary.

Note that we're already depending on this in the win32 POC !1298 (closed).

This doesn't make any difference to performance on Mac that I've noticed, by building base-files.bst in the debian-stretch-bst test repo that we use for our weekly performance comparison:

(bst) debian-stretch-bst :) /usr/bin/time -l bst --builders 8 build base-files/base-files.bst
Edited by Angelos Evripiotis

Merge request reports

Loading