summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiampaolo Rodola <g.rodola@gmail.com>2019-02-20 09:05:15 -0800
committerGiampaolo Rodola <g.rodola@gmail.com>2019-02-20 09:05:15 -0800
commitb46ec41a5cf3d9638fc33f16b00f235859371940 (patch)
tree65e7d973f09d250fa46c2be5941009ad3f3568ef
parent8b41229166f1d12e021f4734fda92b4ad392f920 (diff)
downloadpsutil-b46ec41a5cf3d9638fc33f16b00f235859371940.tar.gz
use Py_BEGIN/ENDALLOW_THREADS; use PyErr_Clear()
-rw-r--r--psutil/arch/windows/global.c7
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;
}