SP_load_sicstus_run_time()
#include <sicstus/sicstus.h> int SP_load_sicstus_run_time(SP_get_dispatch_type **pfuncp, void *reserved);
SP_get_dispatch()
function of the newly loaded SICStus run-time
is stored at this address.
NULL
.
Positive if a new run-time could be loaded, non-positive on error. Please note: The return value was incorrectly described prior to SICStus Prolog 4.0.5. Also note that, for historical reasons, the meaning of the return value is different from the convention used by most of the SICStus Prolog C API.
SP_load_sicstus_run_time()
loads a new SICStus run-time.
As a special case, if SP_load_sicstus_run_time()
is called from a
SICStus run-time that has not been initialized (with
SP_initialize()
) and that has not previously been loaded as the
result of calling SP_load_sicstus_run_time()
, no new run-time
is loaded. Instead, the SP_get_dispatch()
of the run-time itself is
returned. In particular, the first time SP_load_sicstus_run_time()
is called on the initial SICStus run-time, and if this happens before
the initial SICStus run-time is initialized, no new run-time is
loaded.
Calling SP_load_sicstus_run_time()
from a particular run-time can
be done from any thread.
An application that links statically with the SICStus run-time should
not call SP_load_sicstus_run_time()
.
You should not use pre-linked foreign resources when using multiple SICStus run-times in the same process.
For an example of loading and using multiple SICStus run-times, see library/jasper/spnative.c that implements this functionality for the Java interface Jasper.