szaszm commented on a change in pull request #735: WIP: MINIFICPP-1158 - Event 
driven processors can starve each other
URL: https://github.com/apache/nifi-minifi-cpp/pull/735#discussion_r382080471
 
 

 ##########
 File path: libminifi/src/core/Processor.cpp
 ##########
 @@ -268,6 +268,7 @@ void Processor::onTrigger(const 
std::shared_ptr<ProcessContext> &context, const
 
 bool Processor::isWorkAvailable() {
   // We have work if any incoming connection has work
+  std::lock_guard<std::mutex> lock(mutex_);
 
 Review comment:
   My guess would be that we need to use `Connectable::work_available_mutex_` 
instead of `Processor::mutex_`.
   
   I find it a very bad design decision to expose threading and signaling 
primitives in `Connectable`. `isWorkAvailable()` should be a source object (of 
"work") that can be checked for readiness and waited for. That would break an 
important API, though, so just leaving it here.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to