Skip to content

Commit

Permalink
provide debug info in case of error for getloadavg() on Windows.
Browse files Browse the repository at this point in the history
See: nicolargo/glances#1780

Signed-off-by: Giampaolo Rodola <g.rodola@gmail.com>
  • Loading branch information
giampaolo committed Dec 30, 2020
1 parent f18438d commit 51eb1da
Showing 1 changed file with 14 additions and 12 deletions.
26 changes: 14 additions & 12 deletions psutil/arch/windows/wmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,22 +64,28 @@ psutil_init_loadavg_counter(PyObject *self, PyObject *args) {
HANDLE event;
HANDLE waitHandle;

if ((PdhOpenQueryW(NULL, 0, &hQuery)) != ERROR_SUCCESS)
goto error;
if ((PdhOpenQueryW(NULL, 0, &hQuery)) != ERROR_SUCCESS) {
PyErr_Format(PyExc_RuntimeError, "PdhOpenQueryW failed");
return NULL;
}

s = PdhAddEnglishCounterW(hQuery, szCounterPath, 0, &hCounter);
if (s != ERROR_SUCCESS)
goto error;
if (s != ERROR_SUCCESS) {
PyErr_Format(PyExc_RuntimeError, "PdhAddEnglishCounterW failed");
return NULL;
}

event = CreateEventW(NULL, FALSE, FALSE, L"LoadUpdateEvent");
if (event == NULL) {
PyErr_SetFromWindowsErr(0);
PyErr_SetFromOSErrnoWithSyscall("CreateEventW");
return NULL;
}

s = PdhCollectQueryDataEx(hQuery, SAMPLING_INTERVAL, event);
if (s != ERROR_SUCCESS)
goto error;
if (s != ERROR_SUCCESS) {
PyErr_Format(PyExc_RuntimeError, "PdhCollectQueryDataEx failed");
return NULL;
}

ret = RegisterWaitForSingleObject(
&waitHandle,
Expand All @@ -91,15 +97,11 @@ psutil_init_loadavg_counter(PyObject *self, PyObject *args) {
WT_EXECUTEDEFAULT);

if (ret == 0) {
PyErr_SetFromWindowsErr(0);
PyErr_SetFromOSErrnoWithSyscall("RegisterWaitForSingleObject");
return NULL;
}

Py_RETURN_NONE;

error:
PyErr_SetFromWindowsErr(0);
return NULL;
}


Expand Down

0 comments on commit 51eb1da

Please sign in to comment.