Changeset 1119
- Timestamp:
- 06/04/06 01:45:47
- Files:
-
- trunk/cherrypy/_cpwsgiserver.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/_cpwsgiserver.py
r1116 r1119 5 5 import Queue 6 6 import mimetools # todo: use email 7 import os8 7 import sys 9 8 import time … … 176 175 self.wfile.close() 177 176 self.socket.close() 178 self.socket = None179 177 180 178 … … 227 225 RequestHandlerClass = HTTPRequest 228 226 229 # UNIX allows us to pass the socket file descriptor230 # from one process to another via os.environ.231 preserve_socket = hasattr(socket, "fromfd")232 233 227 def __init__(self, bind_addr, wsgi_app, numthreads=10, server_name=None, 234 228 max=-1, request_queue_size=5, timeout=10): … … 267 261 def bind(family, type, proto=0): 268 262 """Create (or recreate) the actual socket object.""" 269 if self.preserve_socket:270 socketfd = int(os.environ.get('CPWSGI_SOCKET', -1))271 if socketfd >= 0:272 self.socket = socket.fromfd(socketfd, family, type, proto)273 return274 275 263 self.socket = socket.socket(family, type, proto) 276 264 self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) … … 352 340 """Gracefully shutdown a server that is serving forever.""" 353 341 self.ready = False 354 355 342 s = getattr(self, "socket", None) 356 if s: 357 if self.preserve_socket: 358 os.environ['CPWSGI_SOCKET'] = str(s.fileno()) 359 else: 360 if hasattr(s, "close"): 361 s.close() 362 self.socket = None 343 if s and hasattr(s, "close"): 344 s.close() 363 345 364 346 # Must shut down threads here so the code that calls

