[#775] Rework closing logic of Worker/Boss#790
Closed
normanmaurer wants to merge 8 commits into
Closed
Conversation
Before we just shutdown the Executor's which were used to serve the IO, now we only do so if we created them by our own. This means if you create a *ChannelFactory and pass in your own Executor, you will need to shutdown them by yourself after calling releaseExternalResources() on the ChannelFactory. The same is true when create WorkerPool and BossPool instances. This commit also fixes the problem that the Worker/Boss Thread will never be released if you use an Executor (no ExecutorService).
Member
Author
|
@trustin please review |
added 2 commits
December 4, 2012 21:36
…tor interface While doing this I also moved the rebuildSelector() method from the Worker interface to the NioSelector interface, as this makes more sense. All of the NIO Boss and Worker implementations now extend from AbstractNioSelector which will make the maintaince of this code a lot easier.
Member
Author
|
@trustin ok I think I'm done with it now.. :) |
added 4 commits
December 4, 2012 22:00
…tdown() to only shutdown the pool without release external resources
Member
|
LGTM. Ship it! |
Member
Author
|
Was merged in |
chrisvest
pushed a commit
to chrisvest/netty
that referenced
this pull request
Apr 24, 2025
netty#790) …G frame as there might be data that was not read / processed yet. Motivation: We need to ensure we don't discard data that is not processed yet when STOP_SENDING is received. Failing to do so might result in missing data Modifications: - Don't directly close the stream if STOP_SENDING is received - Add unit test Result: Correctly read pending data even if STOP_SENDING frame is received
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Before we just shutdown the Executor's which were used to serve the IO, now we only do so if we created them by our own. This means if you create a *ChannelFactory and pass in your own Executor, you will need to shutdown them by yourself after calling releaseExternalResources() on the ChannelFactory. The same is true when create WorkerPool and BossPool instances.
This commit also fixes the problem that the Worker/Boss Thread will never be released if you use an Executor (no ExecutorService).