|
Re: [CDO] Managing async view invalidation [message #1860361 is a reply to message #1860351] |
Tue, 01 August 2023 07:46 |
|
Hi Alain,
The "async mode" is not meant to be configurable by users or client code. It's a parameter that's used by the three different functions in CDO that can trigger view invalidation:
(a) Processing of change notifications sent from the server
(b) Processing of session refreshing (initiated by the client)
(c) Processing of view target switches (initiated by the client)
Only (a) already runs on a separate thread (the Net4j signal thread), so does not need to fork to another thread. Changing the async parameter will lead to deadlocks and perhaps other problems.
Your issue should probably be addressed at the thread pool level. You can use a custom thread pool by contributing a custom ExecutorServiceFactory with, e.g., factoryType="picard". Then you can make your factory be used by the TransportInjector by specifying the system property -Dorg.eclipse.net4j.util.concurrent.ExecutorServiceFactory.type=picard .
In your custom thread pool you can override these methods to set/remove thread local variables:
- ThreadPoolExecutor.beforeExecute(Thread, Runnable)
- ThreadPoolExecutor.afterExecute(Runnable, Throwable)
Cheers
/Eike
----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper
|
|
|
|
Powered by
FUDForum. Page generated in 0.01253 seconds