thread pool struct: make sequence # unsigned long, and force alignment
to minimise false sharing
insert pause instruction in spin loops
white space
Simpler set_job: single CAS (could just be a publish store)
We never use the return value of workers
Simplify protocol: no more "sleeping" slot, and name our two special job constants
thread pool: no need to protect against false sharing
reduce: sizeof(double) instead of a bare 8
approx: flush when signalling [R]estart
update precision after weight update, if any