I have a simulation running on a std::thread that has regular sleeping periods and at the end of each period QWidget::update() is called on my custom QGraphicsObject. It works most of the time, sometimes calculating 100k iterations on a 1024^2 grid, but sometimes from a point QGraphicsView doesn't update itself anymore. I suspect some multi-threaded communication problem.
I've read that Cocos2d-x for example can't handle concurrent calls in it's API excluding some property modification. I haven't found information about thread safety on Qt docs, some people here said Qt Widgets are not thread-safe. Actually QWidget::update() is a public slot, so shall I try converting all direct function calls to update() to emit signals? I would like to do my threading in pure c++, what are constraints of this when working with Qt?
(I'll open a new question specifically about the problem if using std::thread like this is supposed to be safe)