Searched hist:b6a0b89e (Results 1 – 3 of 3) sorted by relevance
/openbmc/phosphor-pid-control/pid/ |
H A D | pidloop.hpp | b6a0b89e Sun Feb 21 20:00:45 CST 2021 Hao Jiang <jianghao@google.com> Bug fix: pidControlLoop may loop infinitely. boost::basic_waitable_timer::cancel is a non-blocking function and only sends cancellation to the pending operations. For other operations: ``` If the timer has already expired when cancel() is called, then the handlers for asynchronous wait operations will: * have already been invoked; or * have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation. ``` In our case, if pidControlLoop() has been invoked or in the invoke queue while the timer cancellation, it will ignore the cancal ec and infinitely call the pidControlLoop() chain. Thus an extra cancel variable is introduced to break the chain. Signed-off-by: Hao Jiang <jianghao@google.com> Change-Id: Ie4e53454ee326bdf612abb511990610a6b528300
|
H A D | pidloop.cpp | b6a0b89e Sun Feb 21 20:00:45 CST 2021 Hao Jiang <jianghao@google.com> Bug fix: pidControlLoop may loop infinitely. boost::basic_waitable_timer::cancel is a non-blocking function and only sends cancellation to the pending operations. For other operations: ``` If the timer has already expired when cancel() is called, then the handlers for asynchronous wait operations will: * have already been invoked; or * have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation. ``` In our case, if pidControlLoop() has been invoked or in the invoke queue while the timer cancellation, it will ignore the cancal ec and infinitely call the pidControlLoop() chain. Thus an extra cancel variable is introduced to break the chain. Signed-off-by: Hao Jiang <jianghao@google.com> Change-Id: Ie4e53454ee326bdf612abb511990610a6b528300
|
/openbmc/phosphor-pid-control/ |
H A D | main.cpp | b6a0b89e Sun Feb 21 20:00:45 CST 2021 Hao Jiang <jianghao@google.com> Bug fix: pidControlLoop may loop infinitely. boost::basic_waitable_timer::cancel is a non-blocking function and only sends cancellation to the pending operations. For other operations: ``` If the timer has already expired when cancel() is called, then the handlers for asynchronous wait operations will: * have already been invoked; or * have been queued for invocation in the near future. These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation. ``` In our case, if pidControlLoop() has been invoked or in the invoke queue while the timer cancellation, it will ignore the cancal ec and infinitely call the pidControlLoop() chain. Thus an extra cancel variable is introduced to break the chain. Signed-off-by: Hao Jiang <jianghao@google.com> Change-Id: Ie4e53454ee326bdf612abb511990610a6b528300
|