Experimental Physics and Industrial Control System
On 1/24/19 9:56 AM, Johnson, Andrew N. via Core-talk wrote:
> If there's a fix for this I suspect it belongs in dbDbLink.c's processTarget() routine. In the actions for the case 'else if (psrc->putf)' we know that pdst->pact is true so the destination record is busy, but maybe if pdst->putf is also true we should *not* set pdst->rpro, since it might be in our calling chain. Unfortunately pdst->putf might be true because it's in someone else's calling chain (in which case we probably *should* set pdst->rpro), but we currently have no way of distinguishing those two cases.
I think the fundamental issue is that PACT!=0 can mean two things.
Either async processing is in progress, or synchronous (recursive)
processing is in progress.
Seems like the best course is for dbProcess() and processTarget()
to keep track of which records are being recursed into.
> I could see of a way around this by storing an identifier in the PUTF and RPRO fields which would let us see that (I'd make the PUTF and RPRO fields into DBF_LONG and use an atomic counter to generate a unique ID for each source put).
I was thinking of using a stack address, or maybe epicsThread*, from the thread which is doing
the processing. Not really fundamentally different from a global counter, though maybe easier
to debug. This would be set and cleared by dbProcess().
I'm not sure about hijacking the existing flag fields. Maybe add a new field in dbCommonPvt?
- Replies:
- Re: Strange change in behavior from 7.0.1 to 7.0.2 Johnson, Andrew N. via Core-talk
- References:
- Strange change in behavior from 7.0.1 to 7.0.2 Mark Rivers via Core-talk
- Re: Strange change in behavior from 7.0.1 to 7.0.2 Johnson, Andrew N. via Core-talk
- Navigate by Date:
- Prev:
Re: Strange change in behavior from 7.0.1 to 7.0.2 Johnson, Andrew N. via Core-talk
- Next:
Re: Strange change in behavior from 7.0.1 to 7.0.2 Johnson, Andrew N. 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:
Re: Strange change in behavior from 7.0.1 to 7.0.2 Johnson, Andrew N. via Core-talk
- Next:
Re: Strange change in behavior from 7.0.1 to 7.0.2 Johnson, Andrew N. 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