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:
parent
296b8f5bd2
commit
4dc1a6d6ba
|
@ -435,7 +435,7 @@ int main(int argc, char **argv)
|
|||
initspam();
|
||||
\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.
|
||||
|
||||
\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.
|
||||
Extension module authors should exercise caution when initializing
|
||||
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
|
||||
distribution as \file{Modules/xxmodule.c}. This file may be used as a
|
||||
|
|
Loading…
Reference in New Issue