Join threads when they have not passed the current pc in the current generation

Do this instead of removing on of the threads. the cyclic traces only occur when passing the same instruction multiple times within the same generation.