[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