Well, in both cases (HIGH delays and callbackRequestDelay) we seem to
have a threshold for the requested delay with a response switching
between a 1 tick delay and a 0 tick delay.
Even with your statement
> ...seems to take a random amount of time between 0 and 0.01666 seconds.
> This is exactly what I expect if the delay does wait for the next
> clock tick, just like epicsThreadSleep.
I have to say that I do not like that behavior. Agreed that it may only
play out in few real life use cases, a delay API that cannot promise the
delay seems awkward and wrong. Note that for any delay request, a system
with a clock tick larger than the requested delay will response with an
arbitrary delay between zero and one clock tick, which is unrelated to
the requested value.
Much like the fundamental difference between a "snooze" timer (don't
wake me up before...) and an alarm setting (wake me up no later than...)
the use cases for a delay and a timer are different and the API promises
should reflect that.
IMHO: A requested delay > 0 shall never call back before the requested delay has passed. If waiting for the next system tick comes back too early, delay shall wait for another system tick.
Immediate call back is acceptable (and somewhat expected) for a requested delay = 0.
--
You received this bug notification because you are a member of EPICS
Core Developers, which is subscribed to EPICS Base.
Matching subscriptions: epics-core-list-subscription
https://bugs.launchpad.net/bugs/1861612
Title:
callbackRequestDelay not waiting for 1/60 sec on vxWorks
Status in EPICS Base:
New
Bug description:
The problem is documented in this tech-talk thread:
https://epics.anl.gov/tech-talk/2020/msg00308.php
In 7.0.3.1, but not in 7.0.3, callbackRequestDelay(1/60) results in
100% CPU time, most of the time in cbHigh.
This happens on vxWorks 6.9.4.1 and was first seen with the scaler
record with multiple types of scaler hardware and device support.
To manage notifications about this bug go to:
https://bugs.launchpad.net/epics-base/+bug/1861612/+subscriptions
- References:
- [Bug 1861612] [NEW] callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
- Navigate by Date:
- Prev:
[Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
- Next:
[Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
[Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
- Next:
[Bug 1861612] Re: callbackRequestDelay not waiting for 1/60 sec on vxWorks rivers via Core-talk
- Index:
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
<2020>
2021
2022
2023
2024
|