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.
What does this do?
Fixes #835.
Fixes #837.
For 837:
e.stopCh
now has only one receiver, and ifexecutorCtx.Done()
does not block, it means that the executor has already received the stop signal and called the stop method, so there is no need to do additional operations, just return from the sub-goroutine.I also use
sync.Once
to prevent the stop method from being called multiple times before the next call to the start method. This may not be necessary, but it maximizes concurrency security, and it doesn't do any noticeable harm.Which issue(s) does this PR fix/relate to?
#835
#837
List any changes that modify/break current functionality
Have you included tests for your changes?
Did you document any new/modified functionality?
example_test.go
README.md
Notes
The two issues have some relevance, so I put the fixes in the same PR. Please don't sqush the commits.