From bb7eef2994e16fece998bc2c5cf42579d485d67b Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sat, 5 Nov 2016 18:19:20 +0100 Subject: [PATCH] Fix a race during startup. Doesn't actually matter in practice (only comes into play if pointer reads/writes are non-atomic), but it's nice to make Helgrind happy. --- audio_mixer.cpp | 6 +++--- mainwindow.cpp | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/audio_mixer.cpp b/audio_mixer.cpp index e4d4cff..38d80c6 100644 --- a/audio_mixer.cpp +++ b/audio_mixer.cpp @@ -170,8 +170,6 @@ AudioMixer::AudioMixer(unsigned num_cards) limiter(OUTPUT_FREQUENCY), correlation(OUTPUT_FREQUENCY) { - global_audio_mixer = this; - for (unsigned bus_index = 0; bus_index < MAX_BUSES; ++bus_index) { locut[bus_index].init(FILTER_HPF, 2); eq[bus_index][EQ_BAND_BASS].init(FILTER_LOW_SHELF, 1); @@ -184,7 +182,6 @@ AudioMixer::AudioMixer(unsigned num_cards) } set_limiter_enabled(global_flags.limiter_enabled); set_final_makeup_gain_auto(global_flags.final_makeup_gain_auto); - alsa_pool.init(); if (!global_flags.input_mapping_filename.empty()) { current_mapping_mode = MappingMode::MULTICHANNEL; @@ -210,6 +207,9 @@ AudioMixer::AudioMixer(unsigned num_cards) // hlen=16 is pretty low quality, but we use quite a bit of CPU otherwise, // and there's a limit to how important the peak meter is. peak_resampler.setup(OUTPUT_FREQUENCY, OUTPUT_FREQUENCY * 4, /*num_channels=*/2, /*hlen=*/16, /*frel=*/1.0); + + global_audio_mixer = this; + alsa_pool.init(); } void AudioMixer::reset_resampler(DeviceSpec device_spec) diff --git a/mainwindow.cpp b/mainwindow.cpp index 4127f91..37b3af1 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -251,7 +251,6 @@ MainWindow::MainWindow() } midi_mapper.refresh_highlights(); midi_mapper.refresh_lights(); - midi_mapper.start_thread(); } void MainWindow::resizeEvent(QResizeEvent* event) @@ -366,6 +365,7 @@ void MainWindow::mixer_created(Mixer *mixer) midi_mapper.refresh_highlights(); midi_mapper.refresh_lights(); + midi_mapper.start_thread(); struct sigaction act; memset(&act, 0, sizeof(act)); -- 2.39.2