William Curtis replied to the topic 'Kstars keeps crashing' in the forum. 4 years ago

I kept on chugging through this issue.

  • Complete uninstall of KStars and INDI, re-installed.
  • Cleaned out the .indi and .local/share/kstars folders
  • Downloaded KStars from Github
  • Recompiled

At this point, application was broken like it was. Then I applied the patch. Still broken, but with new error around the Status LED.

Thinking that the problem was related to threading, I extended the Blocking Queue and Queued Connections to the individual components. This appears to have worked.
 # In the indilistener.cpp
    connect(cm, &ClientManager::newINDIDevice, this, &INDIListener::processDevice, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::newINDIProperty, this, &INDIListener::registerProperty, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::removeINDIDevice, this, &INDIListener::removeDevice, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::removeINDIProperty, this, &INDIListener::removeProperty, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::newINDISwitch, this, &INDIListener::processSwitch, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::newINDIText, this, &INDIListener::processText, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::newINDINumber, this, &INDIListener::processNumber, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::newINDILight, this, &INDIListener::processLight, Qt::BlockingQueuedConnection);
    connect(cm, &ClientManager::newINDIBLOB, this, &INDIListener::processBLOB, Qt::BlockingQueuedConnection);

#in the guimanager.cpp
    connect(cm, &ClientManager::newINDISwitch, gdm, &INDI_D::updateSwitchGUI, Qt::QueuedConnection);
    connect(cm, &ClientManager::newINDIText, gdm, &INDI_D::updateTextGUI, Qt::QueuedConnection);
    connect(cm, &ClientManager::newINDINumber, gdm, &INDI_D::updateNumberGUI, Qt::QueuedConnection);
    connect(cm, &ClientManager::newINDILight, gdm, &INDI_D::updateLightGUI, Qt::QueuedConnection);
    connect(cm, &ClientManager::newINDIBLOB, gdm, &INDI_D::updateBLOBGUI, Qt::QueuedConnection);
    connect(cm, &ClientManager::newINDIMessage, gdm, &INDI_D::updateMessageLog, Qt::QueuedConnection);




Read More...