ikm wrote:Сижу разбираюсь. Попробуй пока вставить после создания qapplication:
QThreadPool::globalInstance()->setMaxThreadCount( 1 )
будет ли продолжать падать?
Нет, после этого больше не падает!


ikm wrote:Сижу разбираюсь. Попробуй пока вставить после создания qapplication:
QThreadPool::globalInstance()->setMaxThreadCount( 1 )
будет ли продолжать падать?
ikm wrote:Да, производительность упадет, так что эту строчку убери, и попробуй вместо этого добавить try/catch в начале
--- a/main.cc
+++ b/main.cc
@@ -19,6 +19,19 @@
int main( int argc, char ** argv )
{
+ // The following clause fixes a race in the MinGW runtime where throwing
+ // exceptions for the first time in several threads simultaneously can cause
+ // an abort(). This code throws first exception in a safe, single-threaded
+ // manner, thus avoiding that race.
+ {
+ class Dummy {};
+
+ try
+ { throw Dummy(); }
+ catch( Dummy )
+ {}
+ }
+
if ( argc == 3 && strcmp( argv[ 1 ], "--show-error-file" ) == 0 )
{
// The program has crashed -- show a message about it
ikm wrote:Я сумел воспроизвести проблему в искусственном тесте, и судя по всему, всё так и есть. Жду проверки последнего теста (с try/catch в начале программы), после чего добавляю это в Git.
Gloggy wrote:Собираюсь применять атомный вариант - поставить Visual Studio и попытаться собрать GD при помощи Visual Studio.
Такое у меня нехорошее подозрение, что вот эти все грабли с падениями - они не в GD самом, а в mingw, перемудрили они там что-то с эксепшнами.
Gloggy wrote:Visual Studio 2010 Express Edition особого впечатления не произвел, кстати
Users browsing this forum: No registered users and 23 guests