我試圖使用Glib-Dbus
中的linux
來調用DBus
方法NetworkManager
。當我創建一個GDBusProxy
g_dbus_proxy_new_sync然後釋放它g_object_unref,新創建的GDBusProxy
似乎不被釋放。我用pmap -x <pid>
來顯示我的進程內存使用情況,並且RSS
值不斷增加。有人能幫我嗎?Glib:創建GDBusProxy時發生內存泄露
這是導致該問題的代碼:
int main (int argc, char *argv[]) { GDBusConnection * connection = NULL; GDBusProxy * proxy = NULL; GError * error = NULL; connection = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error); g_assert_no_error(error); error = NULL; while (1) { proxy = g_dbus_proxy_new_sync(connection, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, NULL, "org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings", "org.freedesktop .NetworkManager.Settings", NULL, NULL); g_assert(proxy != NULL); g_object_unref(proxy); } g_object_unref(connection); return 0; }
在此先感謝