changeset: 101630:d772400a1211 user: Gregory P. Smith [Google Inc.] date: Fri Jun 03 00:13:36 2016 +0000 files: Lib/socketserver.py Misc/NEWS description: Issue #25931: Don't defining socketserver.Forking* names on platforms such as Windows that do not support os.fork(). diff -r 5a4ace14b350 -r d772400a1211 Lib/socketserver.py --- a/Lib/socketserver.py Thu Jun 02 20:06:13 2016 -0400 +++ b/Lib/socketserver.py Fri Jun 03 00:13:36 2016 +0000 @@ -134,10 +134,12 @@ import dummy_threading as threading from time import monotonic as time -__all__ = ["BaseServer", "TCPServer", "UDPServer", "ForkingUDPServer", - "ForkingTCPServer", "ThreadingUDPServer", "ThreadingTCPServer", +__all__ = ["BaseServer", "TCPServer", "UDPServer", + "ThreadingUDPServer", "ThreadingTCPServer", "BaseRequestHandler", "StreamRequestHandler", - "DatagramRequestHandler", "ThreadingMixIn", "ForkingMixIn"] + "DatagramRequestHandler", "ThreadingMixIn"] +if hasattr(os, "fork"): + __all__.extend(["ForkingUDPServer","ForkingTCPServer", "ForkingMixIn"]) if hasattr(socket, "AF_UNIX"): __all__.extend(["UnixStreamServer","UnixDatagramServer", "ThreadingUnixStreamServer", @@ -537,7 +539,9 @@ # No need to close anything. pass -class ForkingMixIn: +if hasattr(os, "fork"): + # Non-standard indentation on this statement to avoid reindenting the body. + class ForkingMixIn: """Mix-in class to handle each request in a new process.""" @@ -647,8 +651,9 @@ t.start() -class ForkingUDPServer(ForkingMixIn, UDPServer): pass -class ForkingTCPServer(ForkingMixIn, TCPServer): pass +if hasattr(os, "fork"): + class ForkingUDPServer(ForkingMixIn, UDPServer): pass + class ForkingTCPServer(ForkingMixIn, TCPServer): pass class ThreadingUDPServer(ThreadingMixIn, UDPServer): pass class ThreadingTCPServer(ThreadingMixIn, TCPServer): pass diff -r 5a4ace14b350 -r d772400a1211 Misc/NEWS --- a/Misc/NEWS Thu Jun 02 20:06:13 2016 -0400 +++ b/Misc/NEWS Fri Jun 03 00:13:36 2016 +0000 @@ -22,6 +22,9 @@ Library ------- +- Issue #25931: Don't defining socketserver.Forking* names on platforms such + as Windows that do not support os.fork(). + - Issue #21776: distutils.upload now correctly handles HTTPError. Initial patch by Claudiu Popa.