re...
> The essence of the mechanism needed is a state transition from "ready" to
> "busy" synchronously as the request is posted so that subsequent state
> queries cannot temporarily see a "ready" and be misled. Multi-record
> solutions tend to produce race windows and get out of synchronization.
The transition to "busy" need not be prompt if your completion detector looks for a
*transition* from "busy" to "ready" instead of looking only at the level of the
signal. The wait record is great for this because it can be instructed to execute
its output link only on a transition. (The full list of possibilities is "Every
Time", "On Change", "When Zero", "When Non-zero", "Transition To Zero", and
"Transition To Non-zero".)
We've been using the wait record in a primitive completion-detector database that
logically OR's all relevant busy signals, and signals completion when the result
makes a transition to zero. This simple-minded completion detector fails when one
busy signal makes 0-1-0 transitions before another signal has made its 0-1
transition, but that's just because it uses a logical OR instead of counting 1-0
transitions as you plan to do. (We don't count transitions because we want to
support scans of compound motions programmed by users at run time, so we can't
know in advance how many actual devices are being scanned. So far, the benefits
have been well worth the problems, but it would be nice to minimize the
problems, and we're looking at ways to do this.)
Tim Mooney
- Navigate by Date:
- Prev:
Re: Proposal for boosted Symb device support Ned Arnold
- Next:
RE: Proposal for boosted Symb device support Jeff Hill
- 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: synchronizing client requests & completions Peregrine M. McGehee
- Next:
RE: synchronizing client requests & completions Jeff Hill
- 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
|