def run(self):
"""Wait & serve. Calls request_handler on every request."""
self.sock.listen(self.backlog)
log("Starting Process")
running = True
while running:
if not self.requests_left:
# self.sock.shutdown(RDWR) here does NOT help with backlog
running = False
elif self.requests_left > 0:
self.requests_left -= 1
if running:
conn, addr = self.sock.accept()
threadcount = _threading.activeCount()
if threadcount < self.max_threads:
log("Accepted connection, starting thread...")
t = _threading.Thread(target=self.accept_handler, args=(conn, addr, True))
t.start()
else:
log("Accepted connection, running in main-thread...")
self.accept_handler(conn, addr, False)
log("Active Threads: %d" % _threading.activeCount())
self.sock.close()
log("Ending Process")
评论列表
文章目录