Fix GTK+ assertion after FreeDV Reporter has been open for a long time. (#929)
* Fix GTK+ assertion after FreeDV Reporter has been open for a long time. * Add PR #929 to changelog.pull/931/head^2
parent
38d9748e72
commit
ed0d4cca2c
|
@ -802,6 +802,7 @@ LDPC | Low Density Parity Check Codes - a family of powerful FEC codes
|
|||
* Fix WASAPI errors on some machines by supporting audio mix formats other than 16-bit integer. (PR #919)
|
||||
* Reduce CPU usage of FreeDV Reporter window by only re-sorting if we actually get new data from the server. (PR #915)
|
||||
* FreeDV Reporter: Fix issue with first column not being aligned properly with other columns. (PR #922)
|
||||
* Fix GTK+ assertion after FreeDV Reporter has been open for a long time. (PR #929)
|
||||
2. Documentation:
|
||||
* Add missing dependency for macOS builds to README. (PR #925; thanks @relistan!)
|
||||
* Add note about using XWayland on Linux. (PR #926)
|
||||
|
|
|
@ -1340,9 +1340,24 @@ double FreeDVReporterDialog::FreeDVReporterDataModel::RadiansToDegrees_(double r
|
|||
void FreeDVReporterDialog::FreeDVReporterDataModel::execQueuedAction_()
|
||||
{
|
||||
// This ensures that we handle server events in the order they're received.
|
||||
std::unique_lock<std::mutex> lk(fnQueueMtx_);
|
||||
fnQueue_[0]();
|
||||
fnQueue_.erase(fnQueue_.begin());
|
||||
std::unique_lock<std::mutex> lk(fnQueueMtx_, std::defer_lock_t());
|
||||
lk.lock();
|
||||
auto size = fnQueue_.size();
|
||||
lk.unlock();
|
||||
|
||||
while(size > 0)
|
||||
{
|
||||
lk.lock();
|
||||
auto fn = fnQueue_[0];
|
||||
lk.unlock();
|
||||
|
||||
fn();
|
||||
|
||||
lk.lock();
|
||||
fnQueue_.erase(fnQueue_.begin());
|
||||
size = fnQueue_.size();
|
||||
lk.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
FreeDVReporterDialog::FilterFrequency FreeDVReporterDialog::getFilterForFrequency_(uint64_t freq)
|
||||
|
|
Loading…
Reference in New Issue