Specifically for the case with multiple blocking dependencies I would like to see an API like
Concurrent.Promise all = Concurrent.Promise();
all->depend( db->promise_query("SELECT foo") ); all->depend( db->promise_query("SELECT bar") );
all->then(do_ok, do_fail);