Listing 7. Sequential Model

bool make_work(long *work, long *current, long stop){
  if (*current>=stop)
    return false; // no work left

  work[0]=*current;
  work[1]=*current+STEP_SIZE;
  *current=*current+STEP_SIZE+1;

  if (work[1]>stop)
    // take care of overstepping last boundary
    work[1]=stop;
  return true;
}