future.set_result(dict(zip(keys, result_list)))
else:
future.set_result(result_list)
+
+ listening = set()
for f in children:
- f.add_done_callback(callback)
+ if f not in listening:
+ listening.add(f)
+ f.add_done_callback(callback)
return future
results = yield [self.async_future(1), self.async_future(2)]
self.assertEqual(results, [1, 2])
+ @gen_test
+ def test_multi_future_duplicate(self):
+ f = self.async_future(2)
+ results = yield [self.async_future(1), f, self.async_future(3), f]
+ self.assertEqual(results, [1, 2, 3, 2])
+
@gen_test
def test_multi_dict_future(self):
results = yield dict(foo=self.async_future(1), bar=self.async_future(2))