Type: specification State: draft Claim: recommended
The Runtime allows to enter / leave a particular purpose environment, respectively to invoke functions in a particular Purpose Environment. The current (purpose) environment does not only vary with the languages OBI (e.g. Java or C++), but also with the executed codes declared purpose type.
Operations may need to be associated with the environment(s) of a particular object. Such operations may set thread related global variables (e.g. the component- or current-context) or may acquire mutexes.
- get the current environment - Provides the current active environment, in case no environment has been entered, the Thread safe environment is returned.
- invoke - Invokes the passed function in the given environment.
- enter - Enters the given environment. environment can be left by entering another environment.
- isValid - Checks if the passed environment is active, so that objects belonging to this environment may be called.
The enter / leave functionality may not be appropriate for all environments at all times. E.g. the thread affine environment does not allow to be entered, while it already has a thread associated.