don't use map

This commit is contained in:
benoitc 2012-11-16 11:08:02 +01:00
parent 98b2114199
commit 46e041b9f1
3 changed files with 22 additions and 16 deletions

View File

@ -41,10 +41,8 @@ class Arbiter(object):
# I love dynamic languages # I love dynamic languages
SIG_QUEUE = [] SIG_QUEUE = []
SIGNALS = map( SIGNALS = [getattr(signal, "SIG%s" % x) \
lambda x: getattr(signal, "SIG%s" % x), for x in "HUP QUIT INT TERM TTIN TTOU USR1 USR2 WINCH".split()]
"HUP QUIT INT TERM TTIN TTOU USR1 USR2 WINCH".split()
)
SIG_NAMES = dict( SIG_NAMES = dict(
(getattr(signal, name), name[3:].lower()) for name in dir(signal) (getattr(signal, name), name[3:].lower()) for name in dir(signal)
if name[:3] == "SIG" and name[3] != "_" if name[:3] == "SIG" and name[3] != "_"
@ -138,13 +136,20 @@ class Arbiter(object):
Initialize master signal handling. Most of the signals Initialize master signal handling. Most of the signals
are queued. Child signals only wake up the master. are queued. Child signals only wake up the master.
""" """
# close old PIPE
if self.PIPE: if self.PIPE:
map(os.close, self.PIPE) [os.close(p) for p in self.PIPE]
# initialize the pipe
self.PIPE = pair = os.pipe() self.PIPE = pair = os.pipe()
map(util.set_non_blocking, pair) for p in pair:
map(util.close_on_exec, pair) util.set_non_blocking(p)
util.close_on_exec(p)
self.log.close_on_exec() self.log.close_on_exec()
map(lambda s: signal.signal(s, self.signal), self.SIGNALS)
# intialiatze all signals
[signal.signal(s, self.signal) for s in self.SIGNALS]
signal.signal(signal.SIGCHLD, self.handle_chld) signal.signal(signal.SIGCHLD, self.handle_chld)
def signal(self, sig, frame): def signal(self, sig, frame):

View File

@ -55,7 +55,7 @@ def default_environ(req, sock, cfg):
"REQUEST_METHOD": req.method, "REQUEST_METHOD": req.method,
"QUERY_STRING": req.query, "QUERY_STRING": req.query,
"RAW_URI": req.uri, "RAW_URI": req.uri,
"SERVER_PROTOCOL": "HTTP/%s" % ".".join(map(str, req.version)) "SERVER_PROTOCOL": "HTTP/%s" % ".".join([str(v) for v in req.version])
} }
def proxy_environ(req): def proxy_environ(req):

View File

@ -21,10 +21,8 @@ from gunicorn.six import MAXSIZE
class Worker(object): class Worker(object):
SIGNALS = map( SIGNALS = [getattr(signal, "SIG%s" % x) \
lambda x: getattr(signal, "SIG%s" % x), for x in "HUP QUIT INT TERM USR1 USR2 WINCH CHLD".split()]
"HUP QUIT INT TERM USR1 USR2 WINCH CHLD".split()
)
PIPE = [] PIPE = []
@ -87,8 +85,9 @@ class Worker(object):
# For waking ourselves up # For waking ourselves up
self.PIPE = os.pipe() self.PIPE = os.pipe()
map(util.set_non_blocking, self.PIPE) for p in self.PIPE:
map(util.close_on_exec, self.PIPE) util.set_non_blocking(p)
util.close_on_exec(p)
# Prevent fd inherientence # Prevent fd inherientence
util.close_on_exec(self.socket) util.close_on_exec(self.socket)
@ -105,7 +104,9 @@ class Worker(object):
self.run() self.run()
def init_signals(self): def init_signals(self):
map(lambda s: signal.signal(s, signal.SIG_DFL), self.SIGNALS) # reset signaling
[signal.signal(s, signal.SIG_DFL) for s in self.SIGNALS]
# init new signaling
signal.signal(signal.SIGQUIT, self.handle_quit) signal.signal(signal.SIGQUIT, self.handle_quit)
signal.signal(signal.SIGTERM, self.handle_exit) signal.signal(signal.SIGTERM, self.handle_exit)
signal.signal(signal.SIGINT, self.handle_exit) signal.signal(signal.SIGINT, self.handle_exit)