Yield thread if there is (probably) no more work.
The scheduler yields if it failed to steal any work due to the task lists being empty. This should improve performance on multiprogrammed systems, as it potentially makes room for other worker threads which still have work to perform.