The configure script says `warning: the interpreter is not
re-entrant'. What does it mean?
The interpreter uses some system functions that are not re-entrant and
they can't be easily make re-entrant. These functions are, for
example, drand48(), localtime(), gmtime(). The interpreter uses these
functions through the interface, that is defined in the `rentrant.h'
file.
When the interpreter is build against the standard C-library, these
functions are fetched from the system library and the resulting
interpreter library will not be re-entrant. However, this is not
problem, since you shouldn't be using this library - built with normal
C-compiler - in multi-threaded programs.
If you are using threads, you normally notify your C-compiler that it
should use the thread versions of some system functions. Likewise,
you should tell the JS interpreter that it should replace the non
re-entrant functions from the support file of the used thread package.
The current version supports Posix threads. The Posix versions of the
functions, defined in the `rentrant.h' file, are defined in the
`r_pthr.c' file. When the interpreter is configured with the
`--with-pthreads' option, the `r_std.c' file is replace with
the `r_pthr.c'.