<< Prev | - Up - | Next >> |
Care must be taken about proper interaction with the Oz garbage collector: it does not notice if you store an OZ_Term
into a global C variable. Therefore it will free the space on the heap occupied by this term, which leads to memory faults. Oz provides functions to explicitly inform the garbage collector about external references to the heap.
OZ_protect
int OZ_protect(OZ_Term *tp)
During garbage collection the term tp
points to is visited and may be moved. Therefore tp
must be a pointer to a term. The location where tp
points to is modified by the garbage collector.
OZ_unprotect
int OZ_unprotect(OZ_Term *tp)
This is the inverse function to OZ_protect
informing the garbage collector that the reference to the heap is no longer used.
OZ_gCollect
int OZ_gCollect(OZ_Term *tp)
This function causes the Oz term referred to by tp
to be updated during garbage collection.
OZ_sClone
int OZ_sClone(OZ_Term *tp)
This function causes the Oz term referred to by tp
to be updated during cloning.
<< Prev | - Up - | Next >> |