diff options
author | Giampaolo Rodola <g.rodola@gmail.com> | 2019-02-20 09:05:15 -0800 |
---|---|---|
committer | Giampaolo Rodola <g.rodola@gmail.com> | 2019-02-20 09:05:15 -0800 |
commit | b46ec41a5cf3d9638fc33f16b00f235859371940 (patch) | |
tree | 65e7d973f09d250fa46c2be5941009ad3f3568ef | |
parent | 8b41229166f1d12e021f4734fda92b4ad392f920 (diff) | |
download | psutil-b46ec41a5cf3d9638fc33f16b00f235859371940.tar.gz |
use Py_BEGIN/ENDALLOW_THREADS; use PyErr_Clear()
-rw-r--r-- | psutil/arch/windows/global.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/psutil/arch/windows/global.c b/psutil/arch/windows/global.c index ac633442..d7ca4fce 100644 --- a/psutil/arch/windows/global.c +++ b/psutil/arch/windows/global.c @@ -34,7 +34,10 @@ psutil_GetProcAddressFromLib(LPCSTR libname, LPCSTR procname) { HMODULE mod; FARPROC addr; - if ((mod = LoadLibraryA(libname)) == NULL) { + Py_BEGIN_ALLOW_THREADS + mod = LoadLibraryA(libname); + Py_END_ALLOW_THREADS + if (mod == NULL) { PyErr_SetFromWindowsErrWithFilename(0, libname); return NULL; } @@ -43,6 +46,7 @@ psutil_GetProcAddressFromLib(LPCSTR libname, LPCSTR procname) { FreeLibrary(mod); return NULL; } + // Causes crash. // FreeLibrary(mod); return addr; } @@ -126,5 +130,6 @@ psutil_loadlibs() { psutil_NtWow64ReadVirtualMemory64 = psutil_GetProcAddressFromLib( "ntdll.dll", "NtWow64ReadVirtualMemory64"); + PyErr_Clear(); return 0; } |