|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 | |
|
Junior Member
Iscritto dal: Nov 2007
Messaggi: 21
|
[C++/Qt] Chiamare libreria esterna da un altro thread: è "sicuro"?
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è? Ci possono essere delle condizioni che rendono unsafe chiamare una libreria da un thread secondario, anche se questo avviene in maniera totalmente sequenziale ed indipendente dal main thread?), 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: 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;
}
Quote:
Dove sbaglio??? |
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Facci magari anche vedere come hai scritto la classe Thread.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:32.



















