aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/utils.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-04-07 12:00:58 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-04-07 12:02:13 +0530
commitb63837bce0b104b1f72f2ebb6c0d05080cf2a607 (patch)
treeedd37dfbf63813e8218aeb9c29e24777a4b06120 /yt_dlp/utils.py
parentfcfa8853e41ca04714a7aa28a783e2804c184375 (diff)
downloadhypervideo-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.py13
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: