Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-dev] core.resources Concurrency Model



On Wed, Apr 28, 2021 at 11:00 AM Jörg Kubitz <jkubitz-eclipse@xxxxxx> wrote:
is there any documentation how/if files in the workspace can be written
in parallel?

 
Are there junit tests for concurrenct workspace modifications?

Yes, probably. However I'm not aware of what tests do take care of that particularly. Tests in eclipse.platform.resources/tests/org.eclipse.core.tests.resources should be audited to find out which one deal with concurrency/scheduling rules.

If that locking is removed or only held on a part of the workspace (as
suggested by Mickael mistria) i still see sourcecode which does not seem
to be thread safe.

Locking should really not be removed by default, at all. However, the current model of locking a whole subtree and not being able to release subtrees of this subtrees is a bit too restricted; and the fact that rules are only compoundable according to inclusions is also too limited.
It's more the duty of individual workspace manipulations to optimize their usage of the workspace to either 1. lock a subtree if they really need it and 2. avoid locking more than the strict minimal necessary things.
 
For example usage of AliasManager.aliases in AliasManager.updateAliases()
I did not see any actual error happening there i just wondering if that is
a) not meant to be used in parallel
b) has some magic synchronization which i dont see
c) is an error which just have such a small chance to happen that it
does normally not happen.

It could be a bit of all ;)
Can you please elaborate about a concrete case you think can be faulty with current code? Ideally in a test case you could submit through Gerrit?

Back to the top