Просмотр исходного кода

Merge topic 'file-LOCK-close'

1f289095 file(LOCK): Close file descriptor/handle when releasing a lock
Brad King 10 лет назад
Родитель
Сommit
166e29e453
2 измененных файлов с 7 добавлено и 0 удалено
  1. 4 0
      Source/cmFileLockUnix.cxx
  2. 3 0
      Source/cmFileLockWin32.cxx

+ 4 - 0
Source/cmFileLockUnix.cxx

@@ -15,6 +15,7 @@
 #include <errno.h> // errno
 #include <stdio.h> // SEEK_SET
 #include <fcntl.h>
+#include <unistd.h>
 #include "cmSystemTools.h"
 
 cmFileLock::cmFileLock(): File(-1)
@@ -31,6 +32,9 @@ cmFileLockResult cmFileLock::Release()
 
   this->Filename = "";
 
+  ::close(this->File);
+  this->File = -1;
+
   if (lockResult == 0)
     {
     return cmFileLockResult::MakeOk();

+ 3 - 0
Source/cmFileLockWin32.cxx

@@ -38,6 +38,9 @@ cmFileLockResult cmFileLock::Release()
 
   this->Filename = "";
 
+  CloseHandle(this->File);
+  this->File = INVALID_HANDLE_VALUE;
+
   if (unlockResult)
     {
     return cmFileLockResult::MakeOk();