Python msvcrt.locking() Examples
The following are 30
code examples of msvcrt.locking().
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: filelock.py From py-filelock with The Unlicense | 6 votes |
def _release(self): fd = self._lock_file_fd self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application # that acquired the file lock. except OSError: pass return None # Unix locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~
Example #2
Source File: filelock.py From a4kScrapers with MIT License | 6 votes |
def __init__(self, lock_file, timeout = -1): """ """ # The path to the lock file. self._lock_file = lock_file # The file descriptor for the *_lock_file* as it is returned by the # os.open() function. # This file lock is only NOT None, if the object currently holds the # lock. self._lock_file_fd = None # The default timeout value. self.timeout = timeout # We use this lock primarily for the lock counter. self._thread_lock = threading.Lock() # The lock counter is used for implementing the nested locking # mechanism. Whenever the lock is acquired, the counter is increased and # the lock is only released, when this value is 0 again. self._lock_counter = 0 return None
Example #3
Source File: gtest_parallel.py From gtest-parallel with Apache License 2.0 | 6 votes |
def __exit__(self, exc_type, exc_value, traceback): # Flush any buffered data to disk. This is needed to prevent race # condition which happens from the moment of releasing file lock # till closing the file. self._fo.flush() try: if sys.platform == 'win32': self._fo.seek(0) msvcrt.locking(self._fo.fileno(), msvcrt.LK_UNLCK, 1) else: fcntl.flock(self._fo.fileno(), fcntl.LOCK_UN) finally: self._fo.close() return exc_value is None
Example #4
Source File: filelock.py From a4kScrapers with MIT License | 6 votes |
def _release(self): fd = self._lock_file_fd self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application # that acquired the file lock. except OSError: pass return None # Unix locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~
Example #5
Source File: filelock.py From veros with MIT License | 6 votes |
def __init__(self, lock_file, timeout=-1): """ """ # The path to the lock file. self._lock_file = lock_file # The file descriptor for the *_lock_file* as it is returned by the # os.open() function. # This file lock is only NOT None, if the object currently holds the # lock. self._lock_file_fd = None # The default timeout value. self.timeout = timeout # We use this lock primarily for the lock counter. self._thread_lock = threading.Lock() # The lock counter is used for implementing the nested locking # mechanism. Whenever the lock is acquired, the counter is increased and # the lock is only released, when this value is 0 again. self._lock_counter = 0 return None
Example #6
Source File: filelock.py From veros with MIT License | 6 votes |
def _release(self): fd = self._lock_file_fd self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application # that acquired the file lock. except OSError: pass return None # Unix locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~
Example #7
Source File: filelock.py From Jacinle with MIT License | 6 votes |
def __init__(self, lock_file, timeout=-1): """ """ # The path to the lock file. self._lock_file = lock_file # The file descriptor for the *_lock_file* as it is returned by the # os.open() function. # This file lock is only NOT None, if the object currently holds the # lock. self._lock_file_fd = None # The default timeout value. self.timeout = timeout # We use this lock primarily for the lock counter. self._thread_lock = threading.Lock() # The lock counter is used for implementing the nested locking # mechanism. Whenever the lock is acquired, the counter is increased and # the lock is only released, when this value is 0 again. self._lock_counter = 0 return None
Example #8
Source File: filelock.py From Jacinle with MIT License | 6 votes |
def _release(self): fd = self._lock_file_fd self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application # that acquired the file lock. except OSError: pass return None # Unix locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~
Example #9
Source File: filelock.py From pyRevit with GNU General Public License v3.0 | 6 votes |
def __init__(self, lock_file, timeout = -1): """ """ # The path to the lock file. self._lock_file = lock_file # The file descriptor for the *_lock_file* as it is returned by the # os.open() function. # This file lock is only NOT None, if the object currently holds the # lock. self._lock_file_fd = None # The default timeout value. self.timeout = timeout # We use this lock primarily for the lock counter. self._thread_lock = threading.Lock() # The lock counter is used for implementing the nested locking # mechanism. Whenever the lock is acquired, the counter is increased and # the lock is only released, when this value is 0 again. self._lock_counter = 0 return None
Example #10
Source File: filelock.py From plugin.git.browser with GNU General Public License v3.0 | 6 votes |
def __init__(self, lock_file, timeout = -1): """ """ # The path to the lock file. if lock_file.endswith(".lock") is False: lock_file += ".lock" self._lock_file = lock_file # The file descriptor for the *_lock_file* as it is returned by the # os.open() function. # This file lock is only NOT None, if the object currently holds the # lock. self._lock_file_fd = None # The default timeout value. self.timeout = timeout # We use this lock primarily for the lock counter. self._thread_lock = threading.Lock() # The lock counter is used for implementing the nested locking # mechanism. Whenever the lock is acquired, the counter is increased and # the lock is only released, when this value is 0 again. self._lock_counter = 0 return None
Example #11
Source File: filelock.py From plugin.git.browser with GNU General Public License v3.0 | 6 votes |
def _acquire(self): open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC try: fd = os.open(self._lock_file, open_mode) except OSError: pass else: try: msvcrt.locking(fd, msvcrt.LK_NBLCK, 1) except (IOError, OSError): try: os.close(fd) except: fd.close() else: self._lock_file_fd = fd return None
Example #12
Source File: filelock.py From plugin.git.browser with GNU General Public License v3.0 | 6 votes |
def _release(self): fd = self._lock_file_fd self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) try: os.close(fd) except: fd.close() try: os.remove(self._lock_file) # Probably another instance of the application # that acquired the file lock. except OSError: pass return None # Unix locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~
Example #13
Source File: filelock.py From pyRevit with GNU General Public License v3.0 | 6 votes |
def _release(self): fd = self._lock_file_fd self._lock_file_fd = None msvcrt.locking(fd, msvcrt.LK_UNLCK, 1) os.close(fd) try: os.remove(self._lock_file) # Probably another instance of the application # that acquired the file lock. except OSError: pass return None # Unix locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~
Example #14
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 #15
Source File: test_lockutils.py From oslo.concurrency with Apache License 2.0 | 6 votes |
def lock_files(handles_dir, out_queue): with lockutils.lock('external', 'test-', external=True): # Open some files we can use for locking handles = [] for n in range(50): path = os.path.join(handles_dir, ('file-%s' % n)) handles.append(open(path, 'w')) # Loop over all the handles and try locking the file # without blocking, keep a count of how many files we # were able to lock and then unlock. If the lock fails # we get an IOError and bail out with bad exit code count = 0 for handle in handles: try: lock_file(handle) count += 1 unlock_file(handle) except IOError: os._exit(2) finally: handle.close() return out_queue.put(count)
Example #16
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 #17
Source File: filelock.py From py-filelock with The Unlicense | 6 votes |
def __init__(self, lock_file, timeout = -1): """ """ # The path to the lock file. self._lock_file = lock_file # The file descriptor for the *_lock_file* as it is returned by the # os.open() function. # This file lock is only NOT None, if the object currently holds the # lock. self._lock_file_fd = None # The default timeout value. self.timeout = timeout # We use this lock primarily for the lock counter. self._thread_lock = threading.Lock() # The lock counter is used for implementing the nested locking # mechanism. Whenever the lock is acquired, the counter is increased and # the lock is only released, when this value is 0 again. self._lock_counter = 0 return None
Example #18
Source File: __init__.py From Tautulli with GNU General Public License v3.0 | 5 votes |
def _lock_file(file): raise TypeError('No file-locking support on this platform')
Example #19
Source File: lockfile.py From bazarr with GNU General Public License v3.0 | 5 votes |
def _unlock_file(self): try: self.fp.seek(0) msvcrt.locking(self.fp.fileno(), msvcrt.LK_UNLCK, 1) except IOError: raise UnlockError(self.fp.name)
Example #20
Source File: test_lockutils.py From oslo.concurrency with Apache License 2.0 | 5 votes |
def unlock_file(handle): if sys.platform == 'win32': msvcrt.locking(handle.fileno(), msvcrt.LK_UNLCK, 1) else: fcntl.flock(handle, fcntl.LOCK_UN)
Example #21
Source File: test_lockutils.py From oslo.concurrency with Apache License 2.0 | 5 votes |
def lock_file(handle): if sys.platform == 'win32': msvcrt.locking(handle.fileno(), msvcrt.LK_NBLCK, 1) else: fcntl.flock(handle, fcntl.LOCK_EX | fcntl.LOCK_NB)
Example #22
Source File: glock.py From ReynirPackage with GNU General Public License v3.0 | 5 votes |
def _unlock_file(file): try: file.seek(0) msvcrt.locking(file.fileno(), msvcrt.LK_UNLCK, 1) except OSError as e: raise LockError( "Couldn't unlock {0}, errno is {1}".format(file.name, e.errno) )
Example #23
Source File: filelock.py From a4kScrapers with MIT License | 5 votes |
def timeout(self, value): """ """ self._timeout = float(value) return None # Platform dependent locking # --------------------------------------------
Example #24
Source File: glock.py From ReynirPackage with GNU General Public License v3.0 | 5 votes |
def _unlock_file(file): raise TypeError("File locking not supported on this platform")
Example #25
Source File: glock.py From ReynirPackage with GNU General Public License v3.0 | 5 votes |
def _lock_file(file, block): raise TypeError("File locking not supported on this platform")
Example #26
Source File: filelock.py From a4kScrapers with MIT License | 5 votes |
def __del__(self): self.release(force = True) return None # Windows locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~~~~
Example #27
Source File: filelock.py From a4kScrapers with MIT License | 5 votes |
def _acquire(self): open_mode = os.O_RDWR | os.O_CREAT | os.O_TRUNC try: fd = os.open(self._lock_file, open_mode) except OSError: pass else: try: msvcrt.locking(fd, msvcrt.LK_NBLCK, 1) except (IOError, OSError): os.close(fd) else: self._lock_file_fd = fd return None
Example #28
Source File: filelock.py From plugin.git.browser with GNU General Public License v3.0 | 5 votes |
def __del__(self): self.release(force = True) return None # Windows locking mechanism # ~~~~~~~~~~~~~~~~~~~~~~~~~
Example #29
Source File: filelock.py From plugin.git.browser with GNU General Public License v3.0 | 5 votes |
def timeout(self, value): """ """ self._timeout = float(value) return None # Platform dependent locking # --------------------------------------------
Example #30
Source File: exfile.py From CUP with Apache License 2.0 | 5 votes |
def win_lockfile(fobj, blocking=True): """win lock file""" flags = msvcrt.LK_RLCK if not blocking: flags = msvcrt.LK_NBRLCK msvcrt.locking(fobj.fileno(), flags, file_size(fobj))