mirror of
https://github.com/python/cpython.git
synced 2024-11-27 23:47:29 +01:00
d5cacbb1d9
Known limitations of the current implementation: - documentation changes are incomplete - there's a reference leak I haven't tracked down yet The leak is most visible by running: ./python -m test -R3:3 test_importlib However, you can also see it by running: ./python -X showrefcount Importing the array or _testmultiphase modules, and then deleting them from both sys.modules and the local namespace shows significant increases in the total number of active references each cycle. By contrast, with _testcapi (which continues to use single-phase initialisation) the global refcounts stabilise after a couple of cycles.
24 lines
580 B
C
24 lines
580 B
C
|
|
/* Support for dynamic loading of extension modules */
|
|
|
|
#include "dl.h"
|
|
|
|
#include "Python.h"
|
|
#include "importdl.h"
|
|
|
|
|
|
extern char *Py_GetProgramName(void);
|
|
|
|
const char *_PyImport_DynLoadFiletab[] = {".o", NULL};
|
|
|
|
|
|
dl_funcptr _PyImport_FindSharedFuncptr(const char *prefix,
|
|
const char *shortname,
|
|
const char *pathname, FILE *fp)
|
|
{
|
|
char funcname[258];
|
|
|
|
PyOS_snprintf(funcname, sizeof(funcname), "%20s_%.200s", prefix, shortname);
|
|
return dl_loadmod(Py_GetProgramName(), pathname, funcname);
|
|
}
|