Move ParallelResult to header since it is in use elsewhere
Cleanup the logic of when to invalidate and also avoid invalidating
if we just got interrupted