Created Started Cancelled
By: Tom Sydney Kerckhove <syd@cs-syd.eu>
Let a worker put a result a failed resource already put A resource that fails before its tests gives them results, because the thread collecting them waits on every one. Scheduling can stop part-way through a group, though, and the jobs already on the queue still run, so a worker could reach a var that had been filled on its behalf and block on it. That is a worker counted as working forever, which is the hang this mechanism exists to avoid. tryPutMVar, and the result already there wins: it says the resource this test needed failed, which is more use than what the test made of a resource it did not have. No regression test: the window is between a job being queued and a worker reaching it, and I could not close on it deterministically without adding hooks to the runner.