mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-29 03:19:44 +00:00
Merge branch 'use_qt_lockfile' into 'master'
make use of QLockFile Closes #7345 See merge request OpenMW/openmw!2966
This commit is contained in:
commit
9f4322951f
@ -1,6 +1,7 @@
|
||||
#include "editor.hpp"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QFileInfo>
|
||||
#include <QLocalServer>
|
||||
#include <QLocalSocket>
|
||||
#include <QMessageBox>
|
||||
@ -22,6 +23,7 @@
|
||||
#ifdef _WIN32
|
||||
#include <components/windows.hpp>
|
||||
#endif
|
||||
|
||||
#include <components/debug/debugging.hpp>
|
||||
#include <components/debug/debuglog.hpp>
|
||||
#include <components/esm3/esmreader.hpp>
|
||||
@ -42,8 +44,8 @@ CS::Editor::Editor(int argc, char** argv)
|
||||
: mConfigVariables(readConfiguration())
|
||||
, mSettingsState(mCfgMgr)
|
||||
, mDocumentManager(mCfgMgr)
|
||||
, mPid("")
|
||||
, mLock()
|
||||
, mPid(std::filesystem::temp_directory_path() / "openmw-cs.pid")
|
||||
, mLockFile(QFileInfo(mPid.c_str()).absoluteFilePath() + ".lock")
|
||||
, mMerge(mDocumentManager)
|
||||
, mIpcServerName("org.openmw.OpenCS")
|
||||
, mServer(nullptr)
|
||||
@ -95,6 +97,7 @@ CS::Editor::~Editor()
|
||||
{
|
||||
delete mViewManager;
|
||||
|
||||
mLockFile.unlock();
|
||||
mPidFile.close();
|
||||
|
||||
if (mServer && std::filesystem::exists(mPid))
|
||||
@ -336,14 +339,11 @@ bool CS::Editor::makeIPCServer()
|
||||
{
|
||||
try
|
||||
{
|
||||
mPid = std::filesystem::temp_directory_path();
|
||||
mPid /= "openmw-cs.pid";
|
||||
bool pidExists = std::filesystem::exists(mPid);
|
||||
|
||||
mPidFile.open(mPid);
|
||||
|
||||
mLock = boost::interprocess::file_lock(mPid.c_str());
|
||||
if (!mLock.try_lock())
|
||||
if (!mLockFile.tryLock())
|
||||
{
|
||||
Log(Debug::Error) << "Error: OpenMW-CS is already running.";
|
||||
return false;
|
||||
|
@ -1,9 +1,9 @@
|
||||
#ifndef CS_EDITOR_H
|
||||
#define CS_EDITOR_H
|
||||
|
||||
#include <boost/interprocess/sync/file_lock.hpp>
|
||||
#include <boost/program_options/variables_map.hpp>
|
||||
|
||||
#include <QLockFile>
|
||||
#include <QObject>
|
||||
#include <QString>
|
||||
|
||||
@ -58,7 +58,7 @@ namespace CS
|
||||
std::filesystem::path mLocal;
|
||||
std::filesystem::path mResources;
|
||||
std::filesystem::path mPid;
|
||||
boost::interprocess::file_lock mLock;
|
||||
QLockFile mLockFile;
|
||||
std::ofstream mPidFile;
|
||||
bool mFsStrict;
|
||||
CSVTools::Merge mMerge;
|
||||
|
Loading…
Reference in New Issue
Block a user