On Thursday 25 February 2010 07:43:51 Benjamin Franksen wrote:
>
> It remains to draw practical conclusions for how to avoid such race
> conditions in SNL code. Should we generally be wary of pvPut and monitor to
> the same state variable?
That is certainly my recommendation, since doing so avoids having to think
through the possible consequences for the state program. Thanks for posting
your detailed analysis, I think it shows that the issue is a very subtle one.
When I've suggested not doing that in the past some people have said that they
use the technique without problems, but I suspect that they could still suffer
from it under some circumstances, they just haven't seen it /yet/ (or maybe
their application doesn't fail spectacularly when it happens).
> Could the compiler warn us about that? Or is this too restrictive?
If someone wants to develop the code to add that as a warning I would be in
favour of merging it. I suspect that it wouldn't be too hard to do, you'd do
the check whenever you process a pvPut() call (but I'm not a compiler writer
so I could be wrong about the difficulty). As long as it's a warning I don't
think it would be too restrictive (C and C++ compilers have a long history of
adding warnings as the developers discover more common anti-patterns).
- Andrew
--
The best FOSS code is written to be read by other humans -- Harald Welte
- Replies:
- RE: Fwd: Sequencer bug? Mark Rivers
- References:
- Re: Sequencer bug? Benjamin Franksen
- Re: Fwd: Sequencer bug? Benjamin Franksen
- Navigate by Date:
- Prev:
EPICS Spring 2010 Collaboration meeting Di Maio Franck
- Next:
RE: Fwd: Sequencer bug? Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
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: Fwd: Sequencer bug? Benjamin Franksen
- Next:
RE: Fwd: Sequencer bug? Mark Rivers
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
<2010>
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|