Created on 2017-01-20.00:00:00 last changed 84 months ago
Proposed resolution:
Resolved by adoption of P0600 in Albuquerque
[ 2017-03-04, Kona ]
This should be handled by Nico's paper P0600.
[ 2017-01-27 Telecon ]
Priority 2; Nico to provide wording.
Because the destructor of the std::future returned from the std::async blocks until the asynchronous operation completes, discarding the std::async return value leads to the synchronous code execution, which is pointless. For example, in the following code
void task1(); void task2(); void foo() { std::async(std::launch::async, task1), std::async(std::launch::async, task2); } void bar() { std::async(std::launch::async, task1); std::async(std::launch::async, task2); }
task1 and task2 will be concurrently executed in the function 'foo', but sequentially in the function 'bar'.
History | |||
---|---|---|---|
Date | User | Action | Args |
2018-01-22 19:05:33 | admin | set | messages: + msg9617 |
2018-01-22 19:05:33 | admin | set | status: new -> resolved |
2017-03-14 03:14:09 | admin | set | messages: + msg9108 |
2017-01-30 15:36:02 | admin | set | messages: + msg8832 |
2017-01-20 00:00:00 | admin | create |