blob: 3aaeac09166b9d6da5eec7c6aaa90eedfa26807d [file] [log] [blame]
Fred Drakea94414a2001-05-10 15:33:31 +00001import struct, fcntl
Guido van Rossum19806f41994-05-03 14:46:18 +00002
3def writelock(f):
Fred Drakea94414a2001-05-10 15:33:31 +00004 _lock(f, fcntl.F_WRLCK)
Guido van Rossum19806f41994-05-03 14:46:18 +00005
6def readlock(f):
Fred Drakea94414a2001-05-10 15:33:31 +00007 _lock(f, fcntl.F_RDLCK)
Guido van Rossum19806f41994-05-03 14:46:18 +00008
9def unlock(f):
Fred Drakea94414a2001-05-10 15:33:31 +000010 _lock(f, fcntl.F_UNLCK)
Guido van Rossum19806f41994-05-03 14:46:18 +000011
12def _lock(f, op):
Fred Drakea94414a2001-05-10 15:33:31 +000013 dummy = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW,
Guido van Rossum19806f41994-05-03 14:46:18 +000014 struct.pack('2h8l', op,
15 0, 0, 0, 0, 0, 0, 0, 0, 0))