[SoC] Report on Sextante Multithreading: First Steps
cpolymeris at gmail.com
Tue May 29 01:56:43 PDT 2012
Hello all and sorry for the late report!
You can also read this report and future ones on the blog I have
established for this purpose: http://sextante-gsoc.blogspot.com/
This first week of GSoC coding I delved into one of the core
components of sextante: The AlgorithmExecutor (AlgEx) class and its
interactions with the rest of the plugin. The goal: to have the
algorithms run in a separate thread to keep the interface responsive
to user actions.
After an initial phase of design, and decisions surrounding which
threading implementation to use, the basic code was written: While it
is still a bit buggy, the selected mechanism around QThread and QT
signals is a satisfactory solution, I think: the preliminary results
look good, while, of course still a lot can be improved. One issue to
be considered is the creation of a thread pool.
Next week I hope to implement the code for iterating over parameter
values and better feedback & reaction to user interaction.
Threaded coding has its pitfalls: unexpected interactions or
conflicting access to data can create hard to track bugs, but thanks
to a clean definition of code responsibilities in the original
implementation of the AlgEx class, it has been relatively easy, so
Your comments & feedback is --of course-- very welcome.
More information about the SoC