blob: 27d14309a6bf20139f56fd70ba99a60d14dd6bf1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
from __future__ import absolute_import
try:
import fcntl
except ImportError:
fcntl = None # noqa
try:
from os import set_cloexec # Python 3.4?
except ImportError:
def set_cloexec(fd, cloexec):
try:
FD_CLOEXEC = fcntl.FD_CLOEXEC
except AttributeError:
raise NotImplementedError(
'close-on-exec flag not supported on this platform',
)
flags = fcntl.fcntl(fd, fcntl.F_GETFD)
if cloexec:
flags |= FD_CLOEXEC
else:
flags &= ~FD_CLOEXEC
return fcntl.fcntl(fd, fcntl.F_SETFD, flags)
|