gnodet commented on PR #14222:
URL: https://github.com/apache/camel/pull/14222#issuecomment-2124212190

   > There's another busy-wait loop issue in `org.apache.camel.support.Task`. 
This is usually not a problem when performing non trivial tasks and 
re-attempting again in case of a failure, such as trying to connect to a remote 
server every 5 seconds. However, this package is also used to wait for trivial 
conditions, such as in the `ServicePool` where [a foreground task is used to 
wait for a service to be started every 5 
milliseconds](https://github.com/apache/camel/blob/740c3b1a0235356346e8ee9ca38d0596513ca425/core/camel-support/src/main/java/org/apache/camel/support/cache/ServicePool.java#L139).
 I think this is an abuse of the framework. For such cases, I think an 
alternative strategy should be provided, using an implementation of 
`java.util.concurrent.Condition` that can be waited for.
   
   Upon further investigation, the potential problem comes from this commit:
    
https://github.com/apache/camel/commit/07b9c68ea2a9a70cf3a3f42c1045fb9fd0acbe6a
    I'm not sure how this is supposed to work: services usually inherit from 
`ServiceSupport` class where starting the service is a blocking operation.  
When the service is created, we call `addService` with `forceStart` set to 
true.  My understanding is that returning from this call, the service will 
either be started, or the start will be deferred, but I don't really see how it 
can be in the `STARTING` state.  @orpiske ?


-- 
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.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to