diff --git a/CMakeLists.txt b/CMakeLists.txt index 932f7894..855a35f9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,9 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux") message(STATUS "Using PROCPS -> ${PROCPS_MODULE_NAME} v${PROCPS_VERSION}") if (PROCPS_VERSION VERSION_GREATER_EQUAL 4.0.0) add_definitions("-DUSING_LIBPROC2") + if (PROCPS_VERSION VERSION_GREATER_EQUAL 4.0.5) + add_definitions("-DUSING_LIBPROC2_1") + endif() endif() endif() diff --git a/lxqt-session/src/procreaper.cpp b/lxqt-session/src/procreaper.cpp index ea614530..8069c606 100644 --- a/lxqt-session/src/procreaper.cpp +++ b/lxqt-session/src/procreaper.cpp @@ -121,10 +121,18 @@ void ProcReaper::stop(const std::set & excludedPids) pids_stack * stack = nullptr; while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) { +# if defined(USING_LIBPROC2_1) + const int ppid = PIDS_VAL(rel_ppid, s_int, stack); +# else const int ppid = PIDS_VAL(rel_ppid, s_int, stack, info); +# endif if (ppid == my_pid) { +# if defined(USING_LIBPROC2_1) + const int tgid = PIDS_VAL(rel_tgid, s_int, stack); +# else const int tgid = PIDS_VAL(rel_tgid, s_int, stack, info); +# endif children.push_back(tgid); } }