Changeset 3f5b0a


Ignore:
Timestamp:
Apr 23, 2021, 8:31:23 PM (5 years ago)
Author:
Frederik Heber <frederik.heber@…>
Branches:
Candidate_v1.7.0, stable
Children:
0ad4781
Parents:
b0060a
git-author:
Frederik Heber <frederik.heber@…> (08/08/20 23:20:31)
git-committer:
Frederik Heber <frederik.heber@…> (04/23/21 20:31:23)
Message:

Added mutex on changes_present in GLWorldView.

  • this should prevent selections from being not updated immediatelty.
  • This happens because the selections may occur during painting of the WorldView and race conditions of setting change_present.
Location:
src/UIElements/Views/Qt4/Qt3D
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/UIElements/Views/Qt4/Qt3D/GLWorldView.cpp

    rb0060a r3f5b0a  
    434434void GLWorldView::initializeGL(QGLPainter *painter)
    435435{
     436  boost::recursive_mutex::scoped_lock lock(changed_mutex);
    436437  worldscene->initialize(this, painter);
    437438  changesPresent = false;
     
    440441void GLWorldView::paintGL(QGLPainter *painter)
    441442{
    442   if (changesPresent)
    443     initializeGL(painter);
     443  {
     444    boost::recursive_mutex::scoped_lock lock(changed_mutex);
     445    if (changesPresent)
     446      initializeGL(painter);
     447  }
    444448
    445449  QVector3D cameraDir = camera()->center() - camera()->eye();
     
    497501void GLWorldView::changeSignalled()
    498502{
     503  boost::recursive_mutex::scoped_lock lock(changed_mutex);
    499504  changesPresent = true;
    500505  updateGL();
  • src/UIElements/Views/Qt4/Qt3D/GLWorldView.hpp

    rb0060a r3f5b0a  
    1919
    2020#include "World.hpp"
     21
     22#include <boost/thread/recursive_mutex.hpp>
    2123
    2224class molecule;
     
    130132
    131133  double defaultEyeSeparation;
     134
     135  boost::recursive_mutex changed_mutex;
     136
    132137};
    133138
Note: See TracChangeset for help on using the changeset viewer.