feat(operator): Add SignalWatcher #1147
Open
+82
−0
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.
Part of stackabletech/issues#803.
Note
Internally, we could use an CancellationToken instead of a watch channel, but this would require us to add
tokio_utilsas a dependency.CancellationTokenon it's own is also not sufficient, as the cancellation needs to be triggered by a signal (like SIGTERM). TheSignalWatcherabstracts waiting for the signal and notifying downstream tasks all in one place.This PR adds a new
SignalWatcherwhich can be used to watch signals and multiply them to gracefully shutdown multiple concurrent tasks/futures.