xarray-contrib/xarray-simlab

`any_object` possible concurrency problems -> strict checking?

feefladder opened this issue · 1 comments

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)