Added some comments on the interaction of reload() and extension modules.

Based on comments from Chris Barker <cbarker@jps.net>.
This commit is contained in:
Fred Drake 2000-10-02 22:38:09 +00:00
parent 296b8f5bd2
commit 4dc1a6d6ba
1 changed files with 6 additions and 1 deletions

View File

@ -435,7 +435,7 @@ int main(int argc, char **argv)
initspam(); initspam();
\end{verbatim} \end{verbatim}
And example may be found in the file \file{Demo/embed/demo.c} in the An example may be found in the file \file{Demo/embed/demo.c} in the
Python source distribution. Python source distribution.
\strong{Note:} Removing entries from \code{sys.modules} or importing \strong{Note:} Removing entries from \code{sys.modules} or importing
@ -444,6 +444,11 @@ following a \cfunction{fork()} without an intervening
\cfunction{exec()}) can create problems for some extension modules. \cfunction{exec()}) can create problems for some extension modules.
Extension module authors should exercise caution when initializing Extension module authors should exercise caution when initializing
internal data structures. internal data structures.
Note also that the \function{reload()} function can be used with
extension modules, and will call the module initialization function
(\cfunction{initspam()} in the example), but will not load the module
again if it was loaded from a dynamically loadable object file
(\file{.so} on \UNIX, \file{.dll} on Windows).
A more substantial example module is included in the Python source A more substantial example module is included in the Python source
distribution as \file{Modules/xxmodule.c}. This file may be used as a distribution as \file{Modules/xxmodule.c}. This file may be used as a