-
-
Notifications
You must be signed in to change notification settings - Fork 34.8k
[3.6] bpo-31639: Use threads in http.server module. (GH-5018) #6203
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -33,9 +33,16 @@ handler. Code to create and run the server looks like this:: | |
| :attr:`server_port`. The server is accessible by the handler, typically | ||
| through the handler's :attr:`server` instance variable. | ||
|
|
||
| .. class:: ThreadedHTTPServer(server_address, RequestHandlerClass) | ||
|
|
||
| The :class:`HTTPServer` must be given a *RequestHandlerClass* on instantiation, | ||
| of which this module provides three different variants: | ||
| This class is identical to HTTPServer but uses threads to handle | ||
| requests by using the :class:`~socketserver.ThreadingMixin`. This | ||
| is usefull to handle web browsers pre-opening sockets, on which | ||
| :class:`HTTPServer` would wait indefinitly. | ||
|
|
||
| The :class:`HTTPServer` and :class:`ThreadedHTTPServer` must be given | ||
| a *RequestHandlerClass* on instantiation, of which this module | ||
| provides three different variants: | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Needs a version added comment.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. You're right. Hum, what is the protocol to decide which version to put it as it's being backported? I initially though 3.8 but as it's backported ... maybe 3.6 but it's wrong (as not precise enough, it was not present in 3.6.*), so maybe
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think 3.6.6 is the right answer in this case for all branches. |
||
|
|
||
| .. class:: BaseHTTPRequestHandler(request, client_address, server) | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,2 @@ | ||
| http.server now exposes a ThreadedHTTPServer class and uses it when the | ||
| module is invoked to cope with web browsers pre-opening sockets. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "and uses it when the module is invoked" ? Doesn't the user have to explicitly use the new class?
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. By "module is invoked" I mean running "python3 -m http.server". In the "python -m http.server" case, the
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. So perhaps change "is invoked" to "is run with -m" ? |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
usefull -> useful
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As it's a backport, should I simply fix it in a new PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since the master and 3.7 versions are already merged, that would be simpler, sure.