Rev 4421: (Martin [gzlist]) Use ctypes.GetLastError, in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue Jun 9 15:23:49 BST 2009


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 4421
revision-id: pqm at pqm.ubuntu.com-20090609142345-8tl0boikusfthw9n
parent: pqm at pqm.ubuntu.com-20090609074559-97mi1flqtxzh6aj3
parent: gzlist at googlemail.com-20090603223359-kvz1aognznnpflna
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2009-06-09 15:23:45 +0100
message:
  (Martin [gzlist]) Use ctypes.GetLastError,
  	since it is available even for Win98
modified:
  bzrlib/lock.py                 lock.py-20050527050856-ec090bb51bc03349
    ------------------------------------------------------------
    revno: 4404.1.1
    revision-id: gzlist at googlemail.com-20090603223359-kvz1aognznnpflna
    parent: pqm at pqm.ubuntu.com-20090603222259-m1s1zm751w82h7bj
    committer: Martin <gzlist at googlemail.com>
    branch nick: dev
    timestamp: Wed 2009-06-03 23:33:59 +0100
    message:
      Correct use of GetLastError in ctypes windows locking code
    modified:
      bzrlib/lock.py                 lock.py-20050527050856-ec090bb51bc03349
=== modified file 'bzrlib/lock.py'
--- a/bzrlib/lock.py	2009-05-08 15:39:11 +0000
+++ b/bzrlib/lock.py	2009-06-03 22:33:59 +0000
@@ -391,7 +391,6 @@
     LOCK_NB = LOCKFILE_FAIL_IMMEDIATELY
     _LockFileEx = ctypes.windll.kernel32.LockFileEx
     _UnlockFileEx = ctypes.windll.kernel32.UnlockFileEx
-    _GetLastError = ctypes.windll.kernel32.GetLastError
 
     ### Define the OVERLAPPED structure.
     #   http://msdn2.microsoft.com/en-us/library/ms684342.aspx
@@ -440,8 +439,8 @@
                                  ctypes.byref(overlapped), # lpOverlapped
                                 )
             if result == 0:
+                last_err = ctypes.GetLastError()
                 self._clear_f()
-                last_err = _GetLastError()
                 if last_err in (ERROR_LOCK_VIOLATION,):
                     raise errors.LockContention(filename)
                 raise errors.LockContention(filename,
@@ -455,12 +454,12 @@
                                    0x00000000, # DWORD nNumberOfBytesToLockHigh
                                    ctypes.byref(overlapped), # lpOverlapped
                                   )
-            self._clear_f()
             if result == 0:
+                last_err = ctypes.GetLastError()
                 self._clear_f()
-                last_err = _GetLastError()
                 raise errors.LockContention(self.filename,
                     'Unknown unlocking error: %s' % (last_err,))
+            self._clear_f()
 
 
     class _ctypes_ReadLock(_ctypes_FileLock):




More information about the bazaar-commits mailing list