lua.wetgenes.tasks.cocall
require("wetgenes.tasks").cocall(f1,f2,...)
require("wetgenes.tasks").cocall({f1,f2,...})
Manage simple coroutines that can poll each others results and wait on them.
Turn a table of "setup" functions into a table of coroutines that can yield waiting for other coroutines to complete and run them all.
You still need to be carefull with race conditions but it allows you to write code in such away that setup order is no longer important. Setup functions can coroutine.yield waiting for another setup to finish first.