From: Pascal Obry Date: Tue, 11 Jul 2023 09:41:01 +0000 (+0200) Subject: Ensure log file is locked across processes. X-Git-Tag: V9_12_0a1~3^2 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fgui.git;a=commitdiff_plain;h=cac216272e5ee5ada124ec683d1bf995356a6f86 Ensure log file is locked across processes. --- diff --git a/src/CAM/CAM_Application.cxx b/src/CAM/CAM_Application.cxx index 7a9273171..63e4dfad6 100644 --- a/src/CAM/CAM_Application.cxx +++ b/src/CAM/CAM_Application.cxx @@ -38,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -1038,11 +1039,19 @@ void CAM_Application::logUserEvent( const QString& eventDescription ) QFile file ( guiLogFile ); if ( file.open( QFile::Append ) ) // append to log file { + // lock for multiple processes, if more than one salome instance + // is running on the same computer. + QString lockFilename = file.fileName() + ".lock"; + QLockFile fLock( lockFilename ); + fLock.lock(); + QDateTime current = QDateTime::currentDateTime(); QTextStream stream( &file ); stream << current.toString("yyyyMMdd-hhmmss") << "," << eventDescription << endl; + + fLock.unlock(); file.close(); } }