----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/25861/#review54462 -----------------------------------------------------------
Have you considered using an accumulator function so that you can avoid passing iterators around? That way you could just chain futures. Example: ``` accumulate(list<Option<CommandInfo>>> l, Option<CommandInfo> command) { l.push_back(command); return l; } prepare(list<Option<CommandInfo>>> l, isolator, containerId, executorInfo, directory) { return isolator->prepare(containerId, executorInfo, directory) .then(bind(::accumulate, l, lambda::_1)); } prepare(...) { Future<list<Option<CommandInfo>>> f = list<Option<CommandInfo>>(); foreach (Owned<Isolator> isolator, isolators) { f = f.then(bind(::prepare, lambda::_1, isolator, containerId, executorInfo, directory); } f.then(_prepare) } ``` - Ben Mahler On Sept. 22, 2014, 6:45 p.m., Ian Downes wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/25861/ > ----------------------------------------------------------- > > (Updated Sept. 22, 2014, 6:45 p.m.) > > > Review request for mesos, Jie Yu and Vinod Kone. > > > Repository: mesos-git > > > Description > ------- > > Change from doing in parallel and collect()ing to serial according to the > vector of isolators (reversed order for cleanup). > > > Diffs > ----- > > src/slave/containerizer/mesos/containerizer.hpp > bf246ca649ca4a461cebf1aee6908a2d58eec362 > src/slave/containerizer/mesos/containerizer.cpp > 9d083294caa5c5a47ba3ceaa1b57346144cb795c > > Diff: https://reviews.apache.org/r/25861/diff/ > > > Testing > ------- > > make check > > > Thanks, > > Ian Downes > >