[Marble-bugs] Concurrency problem when using removeGeoData()/addGeoDataString()
PUHR Joachim (DLJ)
JOACHIM.PUHR at thalesgroup.com
Tue Feb 8 10:51:57 CET 2011
Hello,
if I call the routines MarbleWidget::removeGeoData()/addGeoDataString() frequently, I get strange problems: Often I cannot remove (former set) KML-Strings any more, and sometimes the application crashes (Segmentation fault).
The problem might be a concurrency error in the class FileLoader. It is derived by QThread, and every MarbleWidget::addGeoDataString() starts a new Thread (in FileManager::appendLoader()). But FileLoader does not protect ist variables (that every thread uses simultanously) by a QMutex or something equivalent.
I'm using MS Windows / Visual Studio 2010 / Qt 4.7.1.
Let me also say that Marble is a really great library!
Joachim Puhr
More information about the Marble-bugs
mailing list