From b822704b0c22d022cc3efeca828f04ce7af9b8b7 Mon Sep 17 00:00:00 2001 From: "Charles J. Cliffe" Date: Tue, 20 Oct 2015 18:30:41 -0400 Subject: [PATCH] Tweak waterfall update mutex locking --- src/visual/WaterfallCanvas.cpp | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/visual/WaterfallCanvas.cpp b/src/visual/WaterfallCanvas.cpp index 5b5cbe8..68457d8 100644 --- a/src/visual/WaterfallCanvas.cpp +++ b/src/visual/WaterfallCanvas.cpp @@ -75,6 +75,7 @@ void WaterfallCanvas::processInputQueue() { if (!glContext) { return; } + tex_update.lock(); glContext->SetCurrent(*this); gTimer.update(); @@ -84,7 +85,6 @@ void WaterfallCanvas::processInputQueue() { if (linesPerSecond) { if (lpsIndex >= targetVis) { - tex_update.lock(); while (lpsIndex >= targetVis) { SpectrumVisualData *vData; if (!visualDataQueue.empty()) { @@ -101,9 +101,10 @@ void WaterfallCanvas::processInputQueue() { } } waterfallPanel.update(); - tex_update.unlock(); } - }} + } + tex_update.unlock(); +} void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { wxPaintDC dc(this); @@ -205,6 +206,7 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { } + tex_update.lock(); glContext->SetCurrent(*this); initGLExtensions(); glViewport(0, 0, ClientSize.x, ClientSize.y); @@ -212,9 +214,7 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { glContext->BeginDraw(0,0,0); waterfallPanel.calcTransform(CubicVR::mat4::identity()); - tex_update.lock(); waterfallPanel.draw(); - tex_update.unlock(); std::vector &demods = wxGetApp().getDemodMgr().getDemodulators(); @@ -294,6 +294,7 @@ void WaterfallCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { glContext->EndDraw(); SwapBuffers(); + tex_update.unlock(); } void WaterfallCanvas::OnKeyUp(wxKeyEvent& event) {