Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.4k
doc: reword ambigous docs for socket.setNoDelay#7995
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
Uh oh!
There was an error while loading. Please reload this page.
Conversation
Xerkus commented Aug 6, 2016 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
doc/api/net.md Outdated
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.
This breaks the links, I presume.
The following line should also be changed:
doc/api/http.md:1524:[`socket.setNoDelay()`]: net.html#net_socket_setnodelay_nodelay 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.
That said, I'm not sure if it really makes sense to rename the argument to enable.
Thoughs?
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.
it is too ambiguous otherwise and parameter name in code is enable: https://github.com/nodejs/node/blob/master/lib/net.js#L337
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.
This doesn't help, we used to have two concepts, "no delay" and "true/false", and we could tell that "nodelay" (the param name and method name) could be set to true.
Now, you enable (something?) and when something is enabled, "no delay" is... what? true? false? So I have to map enable to true, and true to "no delay" being on, which is a hop too many.
sam-githubDec 6, 2016 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
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.
or maybe when "enable" is false, nagle is disabled... so "no delay" is true? In which case, the meaning of true/false to this function would be inverted, so that's an API change, and we would never do it.
| connections use the Nagle algorithm, they buffer data before sending it off. | ||
| Setting `true` for `noDelay` will immediately fire off data each time | ||
| `socket.write()` is called. | ||
| `enable` defaults to `true`. |
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.
Another way this could be reworded is:
By default, TCP connections use the Nagle algorithm to buffer data before sending. Calling `socket.setNoDelay(true)` disables such buffering so that data is sent each time `socket.write()` is called. The `enable` argument defaults to `true`. silverwind commented Sep 2, 2016
Also to note, the assumption |
c133999 to 83c7a88Comparejasnell commented Mar 1, 2017
Still want to pursue this? |
Xerkus commented Mar 1, 2017
I am not a native speaker, and there were objections to the change. I am not sure if i was wrong here. |
jasnell commented Mar 1, 2017
@Xerkus ... no problem. I'll keep it open and will take a look to see what else we can do here. |
fhinkel commented May 26, 2017
@silverwind and @sam-github can you make suggestions how you'd rather have the documentation worded so we can change it and land it? Thanks. |
sam-github commented May 26, 2017 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
We did make suggestions, didn't we? EDIT: yes, there were specific suggestions made, including text by @jasnell, that the OP has not followed up on. |
jasnell commented Aug 24, 2017
Closing due to lack of forward progress on this. It's likely still a change that should be made tho. |
chrisbutler commented Feb 1, 2018
please please please can we fix this madness? i'd be happy to take a stab at it |
Checklist
Affected core subsystem(s)
doc
Description of change
Reworded description of
socket.setNoDelayto make it clear that function parameter defaults to true and not thenoDelayoption itself.See nodejs/node-v0.x-archive#8929