Thread sanitizer warning in `OpenGLContext::CachedImage::runJob()`

Variable hasInitialised is used on row 420 in juce_OpenGLContext.cpp and assigned to on row 450 in the same file.

WARNING: ThreadSanitizer: data race (pid=14698)
  Write of size 1 at 0x7b6000013e99 by thread T40:
    #0 juce::OpenGLContext::CachedImage::runJob() juce_OpenGLContext.cpp:450 (MyPlugin:x86_64+0x18b63a7)
    #1 non-virtual thunk to juce::OpenGLContext::CachedImage::runJob() juce_OpenGLContext.cpp (MyPlugin:x86_64+0x18b65ef)
    #2 juce::ThreadPool::runNextJob(juce::ThreadPool::ThreadPoolThread&) juce_ThreadPool.cpp:384 (MyPlugin:x86_64+0x14663d1)
    #3 juce::ThreadPool::ThreadPoolThread::run() juce_ThreadPool.cpp:36 (MyPlugin:x86_64+0x14dc617)
    #4 juce::Thread::threadEntryPoint() juce_Thread.cpp:96 (MyPlugin:x86_64+0x14615f9)
    #5 juce::juce_threadEntryPoint(void*) juce_Thread.cpp:118 (MyPlugin:x86_64+0x1461cf8)
    #6 juce::threadEntryProc(void*) juce_posix_SharedCode.h:896 (MyPlugin:x86_64+0x14b13a9)

  Previous read of size 1 at 0x7b6000013e99 by main thread (mutexes: write M1082406920519684272):
    #0 juce::OpenGLContext::CachedImage::handleResize() juce_OpenGLContext.cpp:420 (MyPlugin:x86_64+0x18bfb0b)
    #1 juce::OpenGLContext::Attachment::componentMovedOrResized(bool, bool) juce_OpenGLContext.cpp:698 (MyPlugin:x86_64+0x18b4e7c)
    #2 juce::ComponentMovementWatcher::componentMovedOrResized(juce::Component&, bool, bool) juce_ComponentMovementWatcher.cpp:100 (MyPlugin:x86_64+0x4b4d24)
    #3 juce::Component::sendMovedResizedMessages(bool, bool)::$_3::operator()(juce::ComponentListener&) const juce_Component.cpp:1167 (MyPlugin:x86_64+0x6eb810)
    #4 void juce::ListenerList<juce::ComponentListener, juce::Array<juce::ComponentListener*, juce::DummyCriticalSection, 0> >::callChecked<juce::Component::sendMovedResizedMessages(bool, bool)::$_3, juce::Component::BailOutChecker>(juce::Component::BailOutChecker const&, juce::Component::sendMovedResizedMessages(bool, bool)::$_3&&) juce_ListenerList.h:153 (MyPlugin:x86_64+0x44c9fa)
    #5 juce::Component::sendMovedResizedMessages(bool, bool) juce_Component.cpp:1167 (MyPlugin:x86_64+0x44c8e5)
    #6 juce::Component::sendMovedResizedMessagesIfPending() juce_Component.cpp:1129 (MyPlugin:x86_64+0x44c640)
    #7 juce::Component::setBounds(int, int, int, int) juce_Component.cpp:1115 (MyPlugin:x86_64+0x44c353)
    #8 juce::Component::setTopLeftPosition(juce::Point<int>) juce_Component.cpp:1173 (MyPlugin:x86_64+0x448aea)
    #9 juce::Component::setTopLeftPosition(int, int) juce_Component.cpp:1172 (MyPlugin:x86_64+0x44cb18)
    #10 JuceVSTWrapper::EditorCompWrapper::updateWindowSize(bool) juce_VST_Wrapper.cpp:1435 (MyPlugin:x86_64+0x1fcf4)
    #11 JuceVSTWrapper::EditorCompWrapper::childBoundsChanged(juce::Component*) juce_VST_Wrapper.cpp:1413 (MyPlugin:x86_64+0x1d396)
    #12 juce::Component::sendMovedResizedMessages(bool, bool) juce_Component.cpp:1164 (MyPlugin:x86_64+0x44c896)
    #13 juce::Component::sendMovedResizedMessagesIfPending() juce_Component.cpp:1129 (MyPlugin:x86_64+0x44c640)
    #14 juce::Component::setBounds(int, int, int, int) juce_Component.cpp:1115 (MyPlugin:x86_64+0x44c353)
    #15 juce::Component::setSize(int, int) juce_Component.cpp:1170 (MyPlugin:x86_64+0x44ca8f)
    #16 PluginAudioProcessorEditor::updateScaleAndSize() PluginAudioProcessorEditor.cpp:225 (MyPlugin:x86_64+0x8c3e0)
    #17 PluginAudioProcessorEditor::changeListenerCallback(SafeChangeBroadcaster*) PluginAudioProcessorEditor.cpp:209 (MyPlugin:x86_64+0x8c1f0)
    #18 non-virtual thunk to PluginAudioProcessorEditor::changeListenerCallback(SafeChangeBroadcaster*) PluginAudioProcessorEditor.cpp (MyPlugin:x86_64+0x8c462)
    #19 SafeChangeBroadcaster::sendSynchronousChangeMessage(juce::Identifier const&) SafeChangeBroadcaster.h:65 (MyPlugin:x86_64+0x9f974d)
    #20 SafeChangeBroadcaster::AsyncBroadcaster::handleAsyncUpdate() SafeChangeBroadcaster.h:122 (MyPlugin:x86_64+0x9f9391)
    #21 juce::AsyncUpdater::AsyncUpdaterMessage::messageCallback() juce_AsyncUpdater.cpp:34 (MyPlugin:x86_64+0x15b6ee1)
    #22 juce::MessageQueue::deliverNextMessage() juce_osx_MessageQueue.h:82 (MyPlugin:x86_64+0x15c604b)
    #23 juce::MessageQueue::runLoopCallback() juce_osx_MessageQueue.h:93 (MyPlugin:x86_64+0x15c5f79)
    #24 juce::MessageQueue::runLoopSourceCallback(void*) juce_osx_MessageQueue.h:101 (MyPlugin:x86_64+0x15c5d3b)
    #25 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ <null>:1063568 (CoreFoundation:x86_64h+0x83de1)
    #26 juce::JUCEApplicationBase::main() juce_ApplicationBase.cpp:262 (pluginval:x86_64+0x10092b338)
    #27 juce::JUCEApplicationBase::main(int, char const**) juce_ApplicationBase.cpp:240 (pluginval:x86_64+0x10092b0b8)
    #28 main Main.cpp:183 (pluginval:x86_64+0x100020c3c)

:slight_smile: