mirror of
https://github.com/cjcliffe/CubicSDR.git
synced 2024-11-12 23:26:10 -05:00
Merge pull request #416 from vsonnier/ModemArgInfoList_concurrent_access_crash
Crash with non-empty ModemArgInfoList (in FM Stereo)
This commit is contained in:
commit
a984ce5b41
@ -1496,8 +1496,12 @@ void AppFrame::OnIdle(wxIdleEvent& event) {
|
||||
demod = wxGetApp().getDemodMgr().getLastActiveDemodulator();
|
||||
|
||||
if (modemPropertiesUpdated.load() && demod && demod->isModemInitialized()) {
|
||||
modemProps->initProperties(demod->getModemArgs());
|
||||
|
||||
//reset notification flag
|
||||
modemPropertiesUpdated.store(false);
|
||||
|
||||
modemProps->initProperties(demod->getModemArgs());
|
||||
|
||||
demodTray->Layout();
|
||||
modemProps->fitColumns();
|
||||
#if ENABLE_DIGITAL_LAB
|
||||
@ -1509,7 +1513,7 @@ void AppFrame::OnIdle(wxIdleEvent& event) {
|
||||
}
|
||||
demod->showOutput();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
if (modemProps->isCollapsed() && modemProps->GetMinWidth() > 22) {
|
||||
@ -1873,8 +1877,8 @@ FFTVisualDataThread *AppFrame::getWaterfallDataThread() {
|
||||
return waterfallDataThread;
|
||||
}
|
||||
|
||||
void AppFrame::updateModemProperties(ModemArgInfoList args) {
|
||||
newModemArgs = args;
|
||||
void AppFrame::notifyUpdateModemProperties() {
|
||||
|
||||
modemPropertiesUpdated.store(true);
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ public:
|
||||
|
||||
FFTVisualDataThread *getWaterfallDataThread();
|
||||
|
||||
void updateModemProperties(ModemArgInfoList args);
|
||||
void notifyUpdateModemProperties();
|
||||
void setMainWaterfallFFTSize(int fftSize);
|
||||
|
||||
void gkNudgeLeft(DemodulatorInstance *demod, int snap);
|
||||
@ -163,7 +163,6 @@ private:
|
||||
|
||||
ModemProperties *modemProps;
|
||||
std::atomic_bool modemPropertiesUpdated;
|
||||
ModemArgInfoList newModemArgs;
|
||||
wxMenuItem *showTipMenuItem;
|
||||
|
||||
bool lowPerfMode;
|
||||
|
@ -61,7 +61,7 @@ void DemodulatorWorkerThread::run() {
|
||||
cModem->writeSettings(demodCommand.settings);
|
||||
}
|
||||
result.sampleRate = demodCommand.sampleRate;
|
||||
wxGetApp().getAppFrame()->updateModemProperties(cModem->getSettings());
|
||||
wxGetApp().getAppFrame()->notifyUpdateModemProperties();
|
||||
}
|
||||
result.modem = cModem;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user