The evaluation of a file happens in a single thread.
At the end of the file evaluation, Starlark exports the values and functions defined in the file. All values are frozen, meaning they won't ever be mutated.
Since no shared object can be modified, you can have any number of threads reading the object. So you can safely evaluate many files in parallel.
Caveat: this assumes the interpreter doesn't expose functions like reading/writing on a disk, etc.
At the end of the file evaluation, Starlark exports the values and functions defined in the file. All values are frozen, meaning they won't ever be mutated.
Since no shared object can be modified, you can have any number of threads reading the object. So you can safely evaluate many files in parallel.
Caveat: this assumes the interpreter doesn't expose functions like reading/writing on a disk, etc.