Machines do not have a shared database for packages. When a project is asked to be built, that machine becomes the master for that build and handles all communication between various other worker nodes.
Machines have a shared database for packages. This database is managed by a dedicated master who handles all builds. When a project is asked to be built, the machine that asks sends a messages to the master asking for the project to be built.
singleBuild makes use of STM and MVar's.
Functions called by singleBuild that are affected
getConfigCache
ensureConfig
withSingleContext