]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Module to lock open files using fcntl()
authorGuido van Rossum <guido@python.org>
Tue, 3 May 1994 14:46:18 +0000 (14:46 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 3 May 1994 14:46:18 +0000 (14:46 +0000)
Lib/lib-old/lockfile.py [new file with mode: 0644]
Lib/lockfile.py [new file with mode: 0644]

diff --git a/Lib/lib-old/lockfile.py b/Lib/lib-old/lockfile.py
new file mode 100644 (file)
index 0000000..3a251d7
--- /dev/null
@@ -0,0 +1,15 @@
+import struct, fcntl, FCNTL
+
+def writelock(f):
+       _lock(f, FCNTL.F_WRLCK)
+
+def readlock(f):
+       _lock(f, FCNTL.F_RDLCK)
+
+def unlock(f):
+       _lock(f, FCNTL.F_UNLCK)
+
+def _lock(f, op):
+       dummy = fcntl.fcntl(f.fileno(), FCNTL.F_SETLKW,
+                           struct.pack('2h8l', op,
+                                       0, 0, 0, 0, 0, 0, 0, 0, 0))
diff --git a/Lib/lockfile.py b/Lib/lockfile.py
new file mode 100644 (file)
index 0000000..3a251d7
--- /dev/null
@@ -0,0 +1,15 @@
+import struct, fcntl, FCNTL
+
+def writelock(f):
+       _lock(f, FCNTL.F_WRLCK)
+
+def readlock(f):
+       _lock(f, FCNTL.F_RDLCK)
+
+def unlock(f):
+       _lock(f, FCNTL.F_UNLCK)
+
+def _lock(f, op):
+       dummy = fcntl.fcntl(f.fileno(), FCNTL.F_SETLKW,
+                           struct.pack('2h8l', op,
+                                       0, 0, 0, 0, 0, 0, 0, 0, 0))