Is it theoretically possible to run multiple QVTo transformations in parallel? Our developers encounter ConcurrentModificationException or NullPointerException when trying to do it. I afraid that I can't provide a simple project which reproduces these errors.
I need to know whether it is possible theoretically or not. Is there any open source examples?
Classic Ecore-based OCL makes no claims to thread safety. Iff you ensure
that all start up occurs on a single thread, and avoid creating any
synthesized types you might stand a chance.
Since QVTo depends on Classic Ecore and I am not aware of any attempt at
thread safety, I would expect none.
The new Pivot-based OCL is intended to be thread safe and so exploit
concurrent multi-core execution. This is an intent that has never been
The new QVTi execution engine for QVTr/QVTc and eventually QVTo is also
designed to be thread safe.
Both of these intents are very dependent on accurate manual coding of
every smart shared cache. I'm not convinced that this is feasible
manually and so one of my background considerations is an auto-generator
for these caches.
On 25/11/2015 07:31, Denis Nikiforov wrote:
> Maybe you can suggest some recomendations for parallel usage of EMF
I've made a test project https://github.com/AresEkb/test_par_qvto And it seems that QVTo works fine in parallel!
The problem is that we transform OCL constraints into another language. And Pivot OCL causes exceptions.