Next: Foreign Resources and Multiple SICStus Runtimes, Previous: Multiple SICStus Runtimes in Java, Up: Multiple SICStus Runtimes [Contents][Index]
Unless otherwise noted, this section documents the behavior when using dynamic linking to access a SICStus runtime.
The key implementation feature that makes it possible to use multiple
runtimes is that all calls from C to the SICStus API
(SP_query(), etc.) go through a dispatch vector. Two runtimes
can be loaded at the same time since their APIs are accessed
through different dispatch vectors.
By default, there will be a single dispatch vector, referenced from a
global variable (sp_GlobalSICStus). A SICStus API functions, such
as SP_query(), is then defined as a macro that expands to something
similar to sp_GlobalSICStus->SP_query_pointer.
The name of the global dispatch vector is subject to change without
notice; it should not be referenced directly. If you need to access the
dispatch vector, then use the C macro SICStusDISPATCHVAR instead; see
below.
| • MT Single | Using a Single SICStus Runtime | |
| • MT Multiple | Using More than One SICStus Runtime |