Ho un problema con una libreria matematica, che so non essere multithread, quando la chiamo da un altro working thread, anche se questo avviene in maniera sequenziale (chiamo-aspetto-chiamo-aspetto).
Mentre se faccio girare l'esempio che è riportato nella documentazione di questa libreria nel thread principale, quando lo faccio nel thread che vado a creare ho un crash della libraria nell'assert del tempo intercorso tramite valutazione dei cicli di CPU.
Non capisco se è un problema del mio codice (xchè?), un bug della libreria esterna (anche se il mainteiner mi ha detto di no) o un problema della libreria di threading delle Qt.
Un piccolo esempio compilabile lo trovate qui, ma comunque la parte interessante è questa:
L'errore che mi ritrovo al crash è:codice:int main(int argc, char *argv[]){ cout << "Test on a glpk application using Qt Threads" << endl<<endl; Thread wThread; // subclassa QThread giusto per ridefinire il metodo run() for (uint y=0;y<5000;y++){ wThread.start(); // esegue un semplice esempio chiamando la libreria glpk wThread.wait(); } cout <<"All done without errors (crashing)"<<endl; return 0; }
e fa riferimento ad un calcolo del tempo trascorso utilizzando i cicli CPU.Assertion failed: xlcmp(env->t_last, t) <= 0
Error detected in file glplib10.c at line 109
Dove sbaglio???