xarray-simlab
xarray-simlab copied to clipboard
`any_object` possible concurrency problems -> strict checking?
Since the any_object class does not specify intent and is passed (AFAIK) as-is to other processes, there could be concurrency problems when multiple processes try to mutate it.
possible solutions
This could be solved manually by the user once custom dependencies are in effect. However, it may be nice to also add intent and strict checking for the any_object class
Hi @Joeperdefloep, sorry for the wait, I've been silent in this repository for too long.
any_object actually implicitly defines VarIntent.OUT, so I think in theory it shouldn't be possible to have a model with another process making reference to it and changing its value.
- a
xs.foreign(..., intent='out')reference to such variable should raise an error at model creation - trying to set a value of a
xs.foreign(..., intent='in')reference should raise an error at simulation runtime (read-only property)