Perhaps we should use a separate temporary list for the current thread so we can allow multiple processors to work correctly.