ok back to just one lock, since we pop from the queue sequentially, we do not need to be spawning so many threads