Next: Can all Processors be
Up: Asynchronous Operation
Previous: Processor Outputs Exist
Contents
We have considered in some detail what happens to a processor's outputs when
recalled, but there are two other questions to be considered when dealing with
reprocessing:-
- What if a processor modifies its inputs?
- What if processors have already been called that used the processor's
outputs?
An example of the former might be a fitter that marks those hits that it
did not use. To deal with this we could place two rules on processors:-
- No processor may permanently alter its inputs (but setting some bit
exclusively reserved for it is O.K.).
- The act of erasing its outputs (see below) must also undo any such
temporary modifications.
If further processors have been called that have used the outputs of a
processor then clearly all their outputs are invalid after reprocessing. The
only safe way recover is to insist that they erase all their outputs as well.
Then the question is how to know what processing has been performed.
A solution to this is to provide a Data Structure Manager (DSM) that monitors
all processing and maintains data structure consistency. It works as follows:-
- Each time a processor completes (excluding the insert mode when the outputs
exist) it calls the manager which places a DSML bank in the data structure
recording the processor id and perhaps a few other details (e.g. SNOMAN
version). This is useful as a way of keeping a summary of what processing
had been performed.
- Before starting to reprocess the processor again calls the manager but this
time asks to roll-back processing. The manager searches the DSML chain
(which is time ordered) and then, in reverse order, calls the delete function
of all downstream processors and removes their DSMLs. The calling
processor can specify reprocess or append mode which will determine if the
manager is to delete the caller's outputs as well. This places the restriction
that the erase request must be a separate routine so that it can be called
indirectly from the processor.
A Standard Processor that complies with all these rules is called an
Asynchronous Processor.
Next: Can all Processors be
Up: Asynchronous Operation
Previous: Processor Outputs Exist
Contents
sno Guest Acct
2009-09-09