commit | 12c2c0ef533842d2e66f8c82c6b586f6df31d577 | [log] [tgz] |
---|---|---|
author | Zhikui Ren <zhikui.ren@intel.com> | Wed Apr 28 17:21:21 2021 -0700 |
committer | Zhikui Ren <zhikui.ren@intel.com> | Tue Jun 15 17:04:08 2021 -0700 |
tree | 3286363e42d80e9c6a4de4ccfabaad965186673b | |
parent | 1263c3dad3a723f4ebbd05e4031e4d5ff45f349c [diff] |
ThresholdTimer: use weak_ptr in async callback Capture weak_ptr to sensor in ThresholdTimer async callback. which is used to detect destructed sensor in the callback. Removed raw sensor pointer inside the ThresholdTimer. When ADCSensor is destructed, ThresholdTimer is cancelled, but already queued timer callback is not removed and can be executed after the sensor is desctructed. This change prevents accessing the dangling raw sensor pointer and fixes the occasional ADCSensor service crash while trying to run createSensors. Any services use ThresholdTimer have the same issue. Tested: ipmitool power cycle 1000 times, ADCSensors get deleted and recreated for every cycle without crashing. Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com> Signed-off-by: Zhikui Ren <zhikui.ren@intel.com> Change-Id: Ibee7a58a2605992554fb33f4c34ebee502eb38d6
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