wait_all blocks while some is unfinished, until all is finished; wait_any unblocks if some is finished, not if all is unfinished;
but many implementations of wa