my $thread_exclusion = Thread::Semaphore -> new ( -1 * $nthreads + 1 );