~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/lock.py

  • Committer: Vincent Ladeuil
  • Date: 2008-01-03 08:49:38 UTC
  • mfrom: (3111.1.31 175524)
  • mto: This revision was merged to the branch mainline in revision 3158.
  • Revision ID: v.ladeuil+lp@free.fr-20080103084938-7kvurk5uvde2ui54
Fix bug #175524, http test servers are 1.1 compliant

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
    )
45
45
 
46
46
 
47
 
class _base_Lock(object):
 
47
class _OSLock(object):
48
48
 
49
49
    def __init__(self):
50
50
        self.f = None
57
57
            return self.f
58
58
        except IOError, e:
59
59
            if e.errno in (errno.EACCES, errno.EPERM):
60
 
                raise errors.ReadOnlyLockError(self.filename, str(e))
 
60
                raise errors.LockFailed(self.filename, str(e))
61
61
            if e.errno != errno.ENOENT:
62
62
                raise
63
63
 
109
109
    lock_EX = fcntl.LOCK_EX
110
110
 
111
111
 
112
 
    class _fcntl_FileLock(_base_Lock):
 
112
    class _fcntl_FileLock(_OSLock):
113
113
 
114
114
        def _unlock(self):
115
115
            fcntl.lockf(self.f, fcntl.LOCK_UN)
196
196
            return True, wlock
197
197
 
198
198
 
199
 
    class _fcntl_TemporaryWriteLock(_base_Lock):
 
199
    class _fcntl_TemporaryWriteLock(_OSLock):
200
200
        """A token used when grabbing a temporary_write_lock.
201
201
 
202
202
        Call restore_read_lock() when you are done with the write lock.
223
223
                new_f = open(self.filename, 'rb+')
224
224
            except IOError, e:
225
225
                if e.errno in (errno.EACCES, errno.EPERM):
226
 
                    raise errors.ReadOnlyLockError(self.filename, str(e))
 
226
                    raise errors.LockFailed(self.filename, str(e))
227
227
                raise
228
228
            try:
229
229
                # LOCK_NB will cause IOError to be raised if we can't grab a
258
258
    LOCK_NB = win32con.LOCKFILE_FAIL_IMMEDIATELY
259
259
 
260
260
 
261
 
    class _w32c_FileLock(_base_Lock):
 
261
    class _w32c_FileLock(_OSLock):
262
262
 
263
263
        def _lock(self, filename, openmode, lockmode):
264
264
            self._open(filename, openmode)
374
374
                    ('hEvent', ctypes.c_void_p), # HANDLE
375
375
                   ]
376
376
 
377
 
    class _ctypes_FileLock(_base_Lock):
 
377
    class _ctypes_FileLock(_OSLock):
378
378
 
379
379
        def _lock(self, filename, openmode, lockmode):
380
380
            self._open(filename, openmode)