MCPcopy Index your code
hub / github.com/RustPython/RustPython / ServerThread

Class ServerThread

Lib/pydoc.py:2437–2475  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2435 self.callback(self)
2436
2437 class ServerThread(threading.Thread):
2438
2439 def __init__(self, urlhandler, host, port):
2440 self.urlhandler = urlhandler
2441 self.host = host
2442 self.port = int(port)
2443 threading.Thread.__init__(self)
2444 self.serving = False
2445 self.error = None
2446 self.docserver = None
2447
2448 def run(self):
2449 """Start the server."""
2450 try:
2451 DocServer.base = http.server.HTTPServer
2452 DocServer.handler = DocHandler
2453 DocHandler.MessageClass = email.message.Message
2454 DocHandler.urlhandler = staticmethod(self.urlhandler)
2455 docsvr = DocServer(self.host, self.port, self.ready)
2456 self.docserver = docsvr
2457 docsvr.serve_until_quit()
2458 except Exception as err:
2459 self.error = err
2460
2461 def ready(self, server):
2462 self.serving = True
2463 self.host = server.host
2464 self.port = server.server_port
2465 self.url = 'http://%s:%d/' % (self.host, self.port)
2466
2467 def stop(self):
2468 """Stop the server and this thread nicely"""
2469 self.docserver.quit = True
2470 self.join()
2471 # explicitly break a reference cycle: DocServer.callback
2472 # has indirectly a reference to ServerThread.
2473 self.docserver = None
2474 self.serving = False
2475 self.url = None
2476
2477 thread = ServerThread(urlhandler, hostname, port)
2478 thread.start()

Callers 1

_start_serverFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected