Github user phrocker commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/91#discussion_r114864639
--- Diff: libminifi/include/EventDrivenSchedulingAgent.h ---
@@ -38,8 +38,8 @@ class EventDrivenSchedulingAgent : public
ThreadedSchedulingAgent {
/*!
* Create a new processor
*/
- EventDrivenSchedulingAgent(std::shared_ptr<core::Repository> repo)
- : ThreadedSchedulingAgent(repo) {
+ EventDrivenSchedulingAgent(const std::shared_ptr<core::Repository>
&repo, const std::shared_ptr<Configure> &configure)
--- End diff --
These schedulers stop in a way in which we don't guarantee threads to stop.
We wait in flow controller 1s to stop threads, thus we can't be 100% certain
that the scheduled threads have stopped. They "probably" did, but we likely
want to keep this pass by value to ensure that we are guaranteed shared
ownership of the shared repo. Since the threads are daemon threads, they will
stop eventually, but we probably want to avoid the error of a dereferencing
deleted memory if we can to aid in eventual recoverability ( if that's a thing
).
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---