/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/lock.py

[merge] bzr.dev 2359

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
"""
36
36
 
37
37
import errno
 
38
import sys
38
39
 
39
40
from bzrlib import (
40
41
    errors,
254
255
    _lock_classes.append(('fcntl', _fcntl_WriteLock, _fcntl_ReadLock))
255
256
 
256
257
 
257
 
if have_pywin32:
 
258
if have_pywin32 and sys.platform == 'win32':
258
259
    LOCK_SH = 0 # the default
259
260
    LOCK_EX = win32con.LOCKFILE_EXCLUSIVE_LOCK
260
261
    LOCK_NB = win32con.LOCKFILE_FAIL_IMMEDIATELY
330
331
    _lock_classes.append(('pywin32', _w32c_WriteLock, _w32c_ReadLock))
331
332
 
332
333
 
333
 
if have_ctypes:
 
334
if have_ctypes and sys.platform == 'win32':
334
335
    # These constants were copied from the win32con.py module.
335
336
    LOCKFILE_FAIL_IMMEDIATELY = 1
336
337
    LOCKFILE_EXCLUSIVE_LOCK = 2
383
384
 
384
385
            self.hfile = msvcrt.get_osfhandle(self.f.fileno())
385
386
            overlapped = OVERLAPPED()
386
 
            p_overlapped = ctypes.pointer(overlapped)
387
387
            result = _LockFileEx(self.hfile, # HANDLE hFile
388
388
                                 lockmode,   # DWORD dwFlags
389
389
                                 0,          # DWORD dwReserved
390
390
                                 0x7fffffff, # DWORD nNumberOfBytesToLockLow
391
391
                                 0x00000000, # DWORD nNumberOfBytesToLockHigh
392
 
                                 p_overlapped, # lpOverlapped
 
392
                                 ctypes.byref(overlapped), # lpOverlapped
393
393
                                )
394
394
            if result == 0:
395
395
                self._clear_f()
401
401
 
402
402
        def unlock(self):
403
403
            overlapped = OVERLAPPED()
404
 
            p_overlapped = ctypes.pointer(overlapped)
405
404
            result = _UnlockFileEx(self.hfile, # HANDLE hFile
406
405
                                   0,          # DWORD dwReserved
407
406
                                   0x7fffffff, # DWORD nNumberOfBytesToLockLow
408
407
                                   0x00000000, # DWORD nNumberOfBytesToLockHigh
409
 
                                   p_overlapped, # lpOverlapped
 
408
                                   ctypes.byref(overlapped), # lpOverlapped
410
409
                                  )
411
410
            self._clear_f()
412
411
            if result == 0: