Рассмотрим следующий код:
bool infinity()
{
while (1)
{
int i = 1;
}
return true;
}
int main()
{
try
{
future<bool> f = async(std::launch::async, infinity);
throw 1;
}
catch (...)
{
}
cout << "After catch" << endl;
}
В моем представлении здесь произойдет следующее:
f
ожидает результат функции infinity
, которая запущена в фоновом режиме;infinity
не планирует завершаться;f
, возникает исключение;f
;f
, блокируется.То есть, я хочу понять, действительно ли деструктор фьючерса блокирует поток, в котором находится фьючерс, до тех пор, пока поток, результат которого нужен фьючерсу, не завершится (предоставит результат своего выполнения)?
Дело может быть не только в исключении, но и в обыкновенном выходе из пространства видимости, в котором находится объект-фьючерс.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Вроде простейшая задача, но какая-то фигняСам код:
Недавно начал работать с классом SqlConnectionЯ написал обёртку databaseHelper, и у меня возникла проблема