Add enable_time() when worker_threads="auto" #22
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Since
tokio::time::sleep
is used inaccept()
, we need to addenable_time()
in the runtime builder.But I didn't get the idea why we chose to sleep here? In the current implementation, every time when
tcp_socket.accept()
is called, it will likely waste some time, return anErr
and leave a trace message. If the listeners are many, it might harm the responsiveness. Maybe the better way is to spawn a separate task per listener to calllistener.accept()
, and see who comes first? Like usingfutures:future:select_all
. Or even simpler, to only support the case with one single listener, like speedtest-go did. Correct me if I'm wrong. Thank you!