diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-04-07 12:00:58 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-04-07 12:02:13 +0530 |
commit | b63837bce0b104b1f72f2ebb6c0d05080cf2a607 (patch) | |
tree | edd37dfbf63813e8218aeb9c29e24777a4b06120 /yt_dlp/utils.py | |
parent | fcfa8853e41ca04714a7aa28a783e2804c184375 (diff) | |
download | hypervideo-pre-b63837bce0b104b1f72f2ebb6c0d05080cf2a607.tar.lz hypervideo-pre-b63837bce0b104b1f72f2ebb6c0d05080cf2a607.tar.xz hypervideo-pre-b63837bce0b104b1f72f2ebb6c0d05080cf2a607.zip |
[utils] locked_file: Fix non-blocking non-exclusive lock
Diffstat (limited to 'yt_dlp/utils.py')
-rw-r--r-- | yt_dlp/utils.py | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 66c3da4c8..02b5ae2ee 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -2190,18 +2190,15 @@ else: import fcntl def _lock_file(f, exclusive, block): + flags = fcntl.LOCK_EX if exclusive else fcntl.LOCK_SH + if not block: + flags |= fcntl.LOCK_NB try: - fcntl.flock(f, - fcntl.LOCK_SH if not exclusive - else fcntl.LOCK_EX if block - else fcntl.LOCK_EX | fcntl.LOCK_NB) + fcntl.flock(f, flags) except BlockingIOError: raise except OSError: # AOSP does not have flock() - fcntl.lockf(f, - fcntl.LOCK_SH if not exclusive - else fcntl.LOCK_EX if block - else fcntl.LOCK_EX | fcntl.LOCK_NB) + fcntl.lockf(f, flags) def _unlock_file(f): try: |