Название: MinGW, потоки и утечки памяти Отправлено: System от Ноябрь 26, 2014, 22:08 Имеется простейший код:
Код: #include <thread> Для полноты картины приведу компиляторы: MinGW-builds x86_64 4.9.2 POSIX SEH rev 0 MSVC 2013 Update 4 x64 Компиляция выполнялась командами Код
Внимание, вопрос! (Гонг. :)) Почему утекает память? Это глюк компилятора или я чего-то не понимаю? P.S. Проверял на нескольких компиляторах MinGW веток 4.8 и 4.9, 32- и 64-бита. Картина не меняется. Память течёт. Название: Re: MinGW, потоки и утечки памяти Отправлено: Kurles от Ноябрь 26, 2014, 23:18 По-ходу это баг компилятора.
тыц. (http://sourceforge.net/p/mingw-w64/mailman/message/32875609/) Название: Re: MinGW, потоки и утечки памяти Отправлено: __Heaven__ от Ноябрь 27, 2014, 09:57 А QThread тоже течет, получается?
Название: Re: MinGW, потоки и утечки памяти Отправлено: Bepec от Ноябрь 27, 2014, 10:20 Скорее мне кажется, что это баг реализации mingw-шного std::thread.
Название: Re: MinGW, потоки и утечки памяти Отправлено: Kurles от Ноябрь 27, 2014, 12:11 А QThread тоже течет, получается? Скорее всего нет, оно же std::thread не использует.Код Вот этот ближайший аналог std::thread не течёт по крайней мере. Название: Re: MinGW, потоки и утечки памяти Отправлено: Old от Ноябрь 27, 2014, 12:29 Вот этот ближайший аналог std::thread не течёт по крайней мере. Я бы так не сказал. QtConcurrent использует пул потоков, т.е. сразу запускаются несколько ниток, которым и передаются задания.Попробуйте добавить в функцию f вывод значения QThread::currentThreadId(). Название: Re: MinGW, потоки и утечки памяти Отправлено: Kurles от Ноябрь 27, 2014, 12:29 Проверил gcc 4.9.2 под линуксом - не течёт std::thread... Проблема mingw-реализации.
Название: Re: MinGW, потоки и утечки памяти Отправлено: Kurles от Ноябрь 27, 2014, 12:42 Вот этот ближайший аналог std::thread не течёт по крайней мере. Я бы так не сказал. QtConcurrent использует пул потоков, т.е. сразу запускаются несколько ниток, которым и передаются задания.Попробуйте добавить в функцию f вывод значения QThread::currentThreadId(). Код
Название: Re: MinGW, потоки и утечки памяти Отправлено: qate от Ноябрь 27, 2014, 13:07 не страшно, если потоков std::thread не плодить множество (а это может делать только сторонняя либа без qt)
|