treat the global work list as a queue rather than a stack