This is an automated email from the ASF dual-hosted git repository. rskraba pushed a commit to branch branch-1.9 in repository https://gitbox.apache.org/repos/asf/avro.git
commit 62e2db9866f1acdbf08e102d7b2ec732ef358918 Author: Michael A. Smith <[email protected]> AuthorDate: Tue Jul 23 05:44:29 2019 -0400 AVRO-2445: Remove StoppableHTTPServer Polyfill (#567) --- lang/py/src/avro/tool.py | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/lang/py/src/avro/tool.py b/lang/py/src/avro/tool.py index be2ef41..6a92fee 100644 --- a/lang/py/src/avro/tool.py +++ b/lang/py/src/avro/tool.py @@ -19,13 +19,14 @@ Command-line tool NOTE: The API for the command-line tool is experimental. """ + import sys -from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler +import threading import urlparse -from avro import io -from avro import datafile -from avro import protocol -from avro import ipc +from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer + +from avro import datafile, io, ipc, protocol + class GenericResponder(ipc.Responder): def __init__(self, proto, msg, datum): @@ -55,24 +56,9 @@ class GenericHandler(BaseHTTPRequestHandler): resp_writer.write_framed_message(resp_body) if server_should_shutdown: print >> sys.stderr, "Shutting down server." - self.server.force_stop() - -class StoppableHTTPServer(HTTPServer): - """HTTPServer.shutdown added in Python 2.6. FML.""" - stopped = False - allow_reuse_address = True - def __init__(self, *args, **kw): - HTTPServer.__init__(self, *args, **kw) - self.allow_reuse_address = True - - def serve_forever(self): - while not self.stopped: - self.handle_request() - - def force_stop(self): - self.server_close() - self.stopped = True - self.serve_forever() + quitter = threading.Thread(target=self.server.shutdown) + quitter.daemon = True + quitter.start() def run_server(uri, proto, msg, datum): url_obj = urlparse.urlparse(uri) @@ -81,7 +67,7 @@ def run_server(uri, proto, msg, datum): global server_should_shutdown server_should_shutdown = False responder = GenericResponder(proto, msg, datum) - server = StoppableHTTPServer(server_addr, GenericHandler) + server = HTTPServer(server_addr, GenericHandler) print "Port: %s" % server.server_port sys.stdout.flush() server.allow_reuse_address = True
