jvmattachthread
| jvmattachthread | 
  Purpose
 
  
  Synopsis
 
 procedure jvmattachthread
 
  Further information
 
 
 1. Normally, each call to a Java function will take place in its own Java thread. For efficiency, and to enable data-sharing using ThreadLocal values, every Java call between
 jvmattachthread and
 jvmdetachthread from the system thread executing the model, will take place in the same Java thread.
 
 
 2. When the parallel solver is used, solver callbacks may invoke Mosel procedures from the same model in a different system thread. Each Java call from such a callback will take place in its own Java thread, unless you call
 jvmattachthread from the callback itself.
 
 
 3. When using
 jvmattachthread, you must call
 jvmdetachthread to explicitly detach the thread from the JVM before the end of the model. If you do not call
 jvmdetachthread, the Java thread will persist until the JVM is unloaded. You will see a warning written to the model's error stream if you forget to do this.
 
 
 4. Calling
 jvmattachthread multiple times from the same system thread is supported. You must call
 jvmdetachthread a corresponding number of times.
 
 
 5. If
 mosjvm has not yet loaded the Java Virtual Machine into the Mosel process, it will be loaded by this function. If Java cannot be found or an error occurs loading it, the model will terminate with a runtime error.
 
 
  Related topics
 
  
