Tasks races conditions

Summary:
When tasks are allocated, there is a consistent way for Stonhearth of doing multiple allocation of the same actions to several Hearthlings.
This kills the efficiency, because Hearthlings will travel (sometimes long!) distances for nothing, and time than could be other wise constructively used is just burnt. Especially irritating when you are on a tight schedule, you are awaiting your workforce to do something in particular and you see it wandering about interfering with each other…

Steps to reproduce:
*) When transportings items, you will often notice some Hearthlings coming to pick up something already moved wy another one.
Possible solution: attribute tasks to Hearthlings in a map in a bijective way

*) When stockpiling items in a full container (or zone), several Hearthlings will compete for the one spot that just happened to be freed, finalling abandoning their payload
Possible solution: mapping the target item to the allocated Hearthling is not enough: also map the destination spot to that Hearthling so that no other can steal it.

*) When building something, several Hearthlings will consume some identical raw materials (ie clay bricks) in an attempt to build the last (few) spot(s), only for the last one to arrive to drop it on site and have someone else bringing it back to storage.

Expected Results:
No race condition: link requirements of a task to the Hearthling being allocated for it. Use locks on attribution to avoid these races.

Actual Results:
Race conditions all over the place!

Version Number and Mods in use:
No mods except base game .smod archives.

System Information:
Windows 7 SP1 x64 (I do not think core algorithms are architecture-dependent, though)

2 Likes