Salome HOME
Ensure log file is locked across processes. po/29467_gui_log_file
authorPascal Obry <pascal.obry@edf.fr>
Tue, 11 Jul 2023 09:41:01 +0000 (11:41 +0200)
committerPascal Obry <pascal.obry@edf.fr>
Tue, 5 Sep 2023 09:36:26 +0000 (11:36 +0200)
src/CAM/CAM_Application.cxx

index 7a9273171212677bbde07bd7cb421edb6b70176f..63e4dfad6fdd32def4022416a178b0672467f1c5 100644 (file)
@@ -38,6 +38,7 @@
 #include <QApplication>
 #include <QDir>
 #include <QFileInfo>
+#include <QLockFile>
 #include <QMutex>
 #include <QMutexLocker>
 #include <QRegExp>
@@ -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();
     }
   }