#define DBUS_MONITOR_INTERFACE "org.tizen.system.pass.monitor"
#define DBUS_MONITOR_PATH "/Org/Tizen/System/Pass/Monitor"
#define DBUS_MONITOR_I_SET_DEBUG_HANDLER "handle_set_debug"
+#define DBUS_MONITOR_SIGNAL_MEM_PRESSURE "MemoryPressure"
#define DBUS_THERMAL_BUS_NAME "org.tizen.system.thermal"
#define DBUS_THERMAL_INTERFACE "org.tizen.system.thermal"
#include <util/log.h>
#include <util/kernel.h>
#include <util/thread.h>
+#include <util/gdbus-util.h>
#include <libsyscommon/resource-manager.h>
#include <libsyscommon/resource-type.h>
sysdata->memory_pressure_level = memory_pressure_level;
sysdata->memory_pressure_last_update = current_msec;
+
+ /* signal only the occurance of pressure stall */
+ if (memory_pressure_level) {
+ int ret;
+ GVariant *gvar = g_variant_new("(i)", memory_pressure_level);
+
+ ret = gdbus_send_broadcast_signal(PASS_DBUS_CORE,
+ DBUS_MONITOR_PATH,
+ DBUS_MONITOR_INTERFACE,
+ DBUS_MONITOR_SIGNAL_MEM_PRESSURE,
+ gvar);
+ if (ret < 0)
+ _W("failed to broadcast %s via %s (%d)\n",
+ DBUS_MONITOR_SIGNAL_MEM_PRESSURE,
+ DBUS_MONITOR_INTERFACE,
+ ret);
+ }
}
static int