The patch below is just for testing the impact of disabling polling of job token pool. A significant reduction in sys time (on freebsd hosts anyway) is the main measurable result of disabling. diff -r 31135c2cae3d bmake/job.c --- a/bmake/job.c Sun Apr 15 11:35:06 2018 -0700 +++ b/bmake/job.c Thu May 03 17:30:43 2018 -0700 @@ -171,6 +171,15 @@ # define STATIC static /* + * Use .MAKE.POLL_JOB_QUEUE=no to skip polling job queue + */ +#define MAKE_POLL_JOB_QUEUE ".MAKE.POLL_JOB_QUEUE" +#ifndef MAKE_POLL_JOB_QUEUE_DEFAULT +# define MAKE_POLL_JOB_QUEUE_DEFAULT TRUE +#endif +static int Poll_job_queue = MAKE_POLL_JOB_QUEUE_DEFAULT; + +/* * error handling variables */ static int errors = 0; /* number of errors reported */ @@ -2409,6 +2418,8 @@ lastNode = NULL; + Poll_job_queue = getBoolean(MAKE_POLL_JOB_QUEUE, Poll_job_queue); + /* * There is a non-zero chance that we already have children. * eg after 'make -f- <