Python msvcrt.LK_LOCK Examples
The following are 9
code examples of msvcrt.LK_LOCK().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
msvcrt
, or try the search function
.
Example #1
Source File: gtest_parallel.py From gtest-parallel with Apache License 2.0 | 6 votes |
def __enter__(self): self._fo = open(self._filename, self._mode) # Regardless of opening mode we always seek to the beginning of file. # This simplifies code working with LockedFile and also ensures that # we lock (and unlock below) always the same region in file on win32. self._fo.seek(0) try: if sys.platform == 'win32': # We are locking here fixed location in file to use it as # an exclusive lock on entire file. msvcrt.locking(self._fo.fileno(), msvcrt.LK_LOCK, 1) else: fcntl.flock(self._fo.fileno(), fcntl.LOCK_EX) except IOError: self._fo.close() raise return self._fo
Example #2
Source File: glock.py From ReynirPackage with GNU General Public License v3.0 | 6 votes |
def _lock_file(file, block): # Lock just the first byte of the file retry = True while retry: retry = False try: msvcrt.locking( file.fileno(), msvcrt.LK_LOCK if block else msvcrt.LK_NBLCK, 1 ) except OSError as e: if block and e.errno == 36: # Windows says 'resource deadlock avoided', but we truly want # a longer blocking wait: try again retry = True else: raise LockError( "Couldn't lock {0}, errno is {1}".format(file.name, e.errno) )
Example #3
Source File: WindowsServer.py From pycopia with Apache License 2.0 | 5 votes |
def lock_exclusive(self, length, start=0, whence=0, nb=0): """Locking method compatible with Posix files.""" if nb: mode = msvcrt.LK_NBLCK else: mode = msvcrt.LK_LOCK orig = self.tell() self.seek(start, whence) try: msvcrt.locking(self.fileno(), mode, length) finally: self.seek(orig)
Example #4
Source File: Storage.py From p2ptv-pi with MIT License | 5 votes |
def _lock_file(self, name, f): if name == self.path: size = self.size else: size = self.tops[name] import msvcrt for p in range(0, min(size, MAXLOCKRANGE), MAXLOCKSIZE): f.seek(p) msvcrt.locking(f.fileno(), msvcrt.LK_LOCK, min(MAXLOCKSIZE, size - p))
Example #5
Source File: Storage.py From p2ptv-pi with MIT License | 5 votes |
def _lock_file(self, name, f): import msvcrt for p in range(0, min(self.sizes[name], MAXLOCKRANGE), MAXLOCKSIZE): f.seek(p) msvcrt.locking(f.fileno(), msvcrt.LK_LOCK, min(MAXLOCKSIZE, self.sizes[name] - p))
Example #6
Source File: extractRatios.py From sec-xbrl with Apache License 2.0 | 5 votes |
def acquire(self): msvcrt.locking(self.handle.fileno(), msvcrt.LK_LOCK, 1)
Example #7
Source File: sdk.py From sa-sdk-python with Apache License 2.0 | 5 votes |
def lock(file_): try: savepos = file_.tell() file_.seek(0) try: msvcrt.locking(file_.fileno(), msvcrt.LK_LOCK, 1) except IOError as e: raise SensorsAnalyticsFileLockException(e) finally: if savepos: file_.seek(savepos) except IOError as e: raise SensorsAnalyticsFileLockException(e)
Example #8
Source File: lock.py From py-solc-x with MIT License | 5 votes |
def acquire(self, blocking): if not self._lock.acquire(blocking): return False while True: try: fd = os.open(self._lock_path, OPEN_MODE) msvcrt.locking(fd, msvcrt.LK_LOCK if blocking else msvcrt.LK_NBLCK, 1) self._fd = fd return True except OSError: if not blocking: self._lock.release() return False
Example #9
Source File: file_lock.py From pre-commit with MIT License | 5 votes |
def _locked( fileno: int, blocked_cb: Callable[[], None], ) -> Generator[None, None, None]: try: # TODO: https://github.com/python/typeshed/pull/3607 msvcrt.locking(fileno, msvcrt.LK_NBLCK, _region) # type: ignore except OSError: blocked_cb() while True: try: # TODO: https://github.com/python/typeshed/pull/3607 msvcrt.locking(fileno, msvcrt.LK_LOCK, _region) # type: ignore # noqa: E501 except OSError as e: # Locking violation. Returned when the _LK_LOCK or _LK_RLCK # flag is specified and the file cannot be locked after 10 # attempts. if e.errno != errno.EDEADLOCK: raise else: break try: yield finally: # From cursory testing, it seems to get unlocked when the file is # closed so this may not be necessary. # The documentation however states: # "Regions should be locked only briefly and should be unlocked # before closing a file or exiting the program." # TODO: https://github.com/python/typeshed/pull/3607 msvcrt.locking(fileno, msvcrt.LK_UNLCK, _region) # type: ignore