When two MatrixRun runs on different threads, run[0]++ isn't safe.

... because there's no barrier
Using the checkoutBranch method