summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1996-08-20 20:23:34 (GMT)
committerGuido van Rossum <guido@python.org>1996-08-20 20:23:34 (GMT)
commit0f6a3bf4900d8a7dfff44713fa9719bbd3041321 (patch)
tree64a12821ba41ca3a49ffbdb982b132196f6d9c75 /Lib
parentf85de8a440f56c5e7ac40ff623d6099f34b9e281 (diff)
downloadcpython-0f6a3bf4900d8a7dfff44713fa9719bbd3041321.zip
cpython-0f6a3bf4900d8a7dfff44713fa9719bbd3041321.tar.gz
cpython-0f6a3bf4900d8a7dfff44713fa9719bbd3041321.tar.bz2
Added locking hacks for AIX
Diffstat (limited to 'Lib')
-rw-r--r--Lib/posixfile.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/Lib/posixfile.py b/Lib/posixfile.py
index 64cda98..f0df543 100644
--- a/Lib/posixfile.py
+++ b/Lib/posixfile.py
@@ -174,11 +174,15 @@ class _posixfile_:
elif len(args) > 3:
raise TypeError, 'too many arguments'
- # Hack by davem@magnet.com to get locking to go on freebsd
+ # Hack by davem@magnet.com to get locking to go on freebsd;
+ # additions for AIX by Vladimir.Marangozov@imag.fr
import sys, os
if sys.platform == 'freebsd2':
flock = struct.pack('lxxxxlxxxxlhh', \
l_start, l_len, os.getpid(), l_type, l_whence)
+ elif sys.platform in ['aix3', 'aix4']:
+ flock = struct.pack('hhlllii', \
+ l_type, l_whence, l_start, l_len, 0, 0, 0)
else:
flock = struct.pack('hhllhh', \
l_type, l_whence, l_start, l_len, 0, 0)
@@ -189,6 +193,9 @@ class _posixfile_:
if sys.platform == 'freebsd2':
l_start, l_len, l_pid, l_type, l_whence = \
struct.unpack('lxxxxlxxxxlhh', flock)
+ elif sys.platform in ['aix3', 'aix4']:
+ l_type, l_whence, l_start, l_len, l_sysid, l_pid, l_vfs = \
+ struct.unpack('hhlllii', flock)
else:
l_type, l_whence, l_start, l_len, l_sysid, l_pid = \
struct.unpack('hhllhh', flock)