[utils] Jython support: tolerate missing fcntl module
This commit is contained in:
parent
7360db05b4
commit
399a76e67b
|
@ -1217,13 +1217,23 @@ if sys.platform == 'win32':
|
||||||
raise OSError('Unlocking file failed: %r' % ctypes.FormatError())
|
raise OSError('Unlocking file failed: %r' % ctypes.FormatError())
|
||||||
|
|
||||||
else:
|
else:
|
||||||
import fcntl
|
# Some platforms, such as Jython, is missing fcntl
|
||||||
|
try:
|
||||||
|
import fcntl
|
||||||
|
|
||||||
def _lock_file(f, exclusive):
|
def _lock_file(f, exclusive):
|
||||||
fcntl.flock(f, fcntl.LOCK_EX if exclusive else fcntl.LOCK_SH)
|
fcntl.flock(f, fcntl.LOCK_EX if exclusive else fcntl.LOCK_SH)
|
||||||
|
|
||||||
def _unlock_file(f):
|
def _unlock_file(f):
|
||||||
fcntl.flock(f, fcntl.LOCK_UN)
|
fcntl.flock(f, fcntl.LOCK_UN)
|
||||||
|
except ImportError:
|
||||||
|
UNSUPPORTED_MSG = 'file locking is not supported on this platform'
|
||||||
|
|
||||||
|
def _lock_file(f, exclusive):
|
||||||
|
raise IOError(UNSUPPORTED_MSG)
|
||||||
|
|
||||||
|
def _unlock_file(f):
|
||||||
|
raise IOError(UNSUPPORTED_MSG)
|
||||||
|
|
||||||
|
|
||||||
class locked_file(object):
|
class locked_file(object):
|
||||||
|
|
Loading…
Reference in New Issue