commit | f3fd1915faa9a80a6d7baec7f0dcd6ac34753a6c | [log] [tgz] |
---|---|---|
author | Yong Li <yong.b.li@linux.intel.com> | Wed Mar 25 21:35:23 2020 +0800 |
committer | Yong Li <yong.b.li@intel.com> | Fri Mar 27 01:36:51 2020 +0000 |
tree | d1c577639b14909959b0862c5fa767631174d195 | |
parent | 6b1247a16d52be853c18015e7163d60abce5c00a [diff] |
Check if the object is still valid in the timeout callback function There is a chance that the service will crash if the sensor threshold is changed. The root cause is that the timer cancel() API cannot cancel the already expired callback handlers. When the callback handler is executed after objects destroyed, all variables are invalid. Change the object to shared_ptr, and use a weak_ptr to check if the object is destroyed Tested: Change the threshold, to check if there is any service crash log. Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Change-Id: I03044e1071285c8dafa78f47e45b14e63aad66fe
dbus-sensors is a collection of sensor applications that provide the xyz.openbmc_project.Sensor collection of interfaces. They read sensor values from hwmon, d-bus, or direct driver access to provide readings. Some advance non-sensor features such as fan presence, pwm control, and automatic cpu detection (x86) are also supported.
runtime re-configurable from d-bus (entity-manager or the like)
isolated: each sensor type is isolated into its own daemon, so a bug in one sensor is unlikely to affect another, and single sensor modifications are possible
async single-threaded: uses sdbusplus/asio bindings
multiple data inputs: hwmon, d-bus, direct driver access