006c990b

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Replace StmMap worker status tracking with a TVar Int busy counter

The allDone check materialized the entire status map into a list via
ListT.toList on every idle tick for every worker. Replace the StmMap Int
Bool with a single TVar Int counting busy workers, making the idle check
O(1) instead of O(n) in the number of fetchers.

Suite timing

Time to Start Worker time Duration Time to finish
Config 39m24s 2s 2s 39m27s
Eval 39m31s 36s 36s 40m07s
Build 41m46s 1m13s 42s 42m29s
Test - - - -
Deploy - - - -
Suite 39m24s 1m52s 3m04s 42m29s

Timeline

0s39m40s39m50s40m41m50s42m42m10s42m20s