diff --git a/lib/modules/Concurrent.pmod b/lib/modules/Concurrent.pmod index 0a67b52e37645edbfcc5e1f25acba080ca039d88..b924e614ba18ac855e8c99c466d3e30f5ae1fe2a 100644 --- a/lib/modules/Concurrent.pmod +++ b/lib/modules/Concurrent.pmod @@ -1059,6 +1059,9 @@ variant inline Future race(Future ... futures) //! @[all()], @[Promise.depend()] variant Future results(array(Future) futures) { + if(!sizeof(futures)) + return resolve(({})); + return Promise()->depend(futures)->future(); } inline variant Future results(Future ... futures) diff --git a/lib/modules/testsuite.in b/lib/modules/testsuite.in index 9c1566bcde6947835234ad7e896071343443b369..891cafbcc9f2d058145077842eaa5c789c1452be 100644 --- a/lib/modules/testsuite.in +++ b/lib/modules/testsuite.in @@ -379,6 +379,12 @@ test_do([[ add_constant("p12"); ]]) test_do([[ add_constant("p13"); ]]) exit_promise(1, ({11, 14, 12, 13})) +dnl - Concurrent.results() - empty +init_promise() +test_do([[ add_constant("future", Concurrent.results(({}))); ]]) +init_future() +exit_promise(1, ({})) + dnl - Concurrent.traverse() init_promise() test_do([[ add_constant("p11", Concurrent.Promise()); ]])