blob: cde9b48c569e6b54522607394dc4e930801e2e0c [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):
Tim Peters182b5ac2004-07-18 06:16:08 +00004 _lock(f, fcntl.F_WRLCK)
Guido van Rossum19806f41994-05-03 14:46:18 +00005
6def readlock(f):
Tim Peters182b5ac2004-07-18 06:16:08 +00007 _lock(f, fcntl.F_RDLCK)
Guido van Rossum19806f41994-05-03 14:46:18 +00008
9def unlock(f):
Tim Peters182b5ac2004-07-18 06:16:08 +000010 _lock(f, fcntl.F_UNLCK)
Guido van Rossum19806f41994-05-03 14:46:18 +000011
12def _lock(f, op):
Tim Peters182b5ac2004-07-18 06:16:08 +000013 dummy = fcntl.fcntl(f.fileno(), fcntl.F_SETLKW,
14 struct.pack('2h8l', op,
15 0, 0, 0, 0, 0, 0, 0, 0, 0))