From 3e8007b0557ffa6f10c75a21e9a16f9c5f919ad6 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Sun, 18 Aug 2019 21:19:56 +0300 Subject: [PATCH] MusPlay: Single-application fix --- .../SingleApplication/singleapplication.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/examples/MusPlay-Qt/SingleApplication/singleapplication.cpp b/examples/MusPlay-Qt/SingleApplication/singleapplication.cpp index 1be086af..8154242e 100644 --- a/examples/MusPlay-Qt/SingleApplication/singleapplication.cpp +++ b/examples/MusPlay-Qt/SingleApplication/singleapplication.cpp @@ -35,19 +35,22 @@ SingleApplication::SingleApplication(QStringList &args) : _shouldContinue = false; // By default this is not the main process socket = new QUdpSocket(); - server = NULL; + server = nullptr; QString isServerRuns; bool isRunning=false; m_sema.acquire();//Avoid races - if(m_shmem.attach()) //Detect shared memory copy - { - isRunning = true; - } - else + + if(!m_shmem.create(1))//Detect shared memory copy { - m_shmem.create(1); - isRunning = false; + m_shmem.attach(); + m_shmem.detach(); + if(!m_shmem.create(1)) + { + isRunning = true; + if(!m_shmem.attach()) + qWarning() << "Can't re-attach existing shared memory!"; + } } //Force run second copy of application