|        | |||||
|  | |||||
| Parallel processing model | |||||
| Prerequisite Concepts | Related Syntax | ||||
OmniMark has the capability to run processes in parallel. Such processes run as co-routines, not threads. Parallel processing occurs whenever a program is generating markup which is then fed to the markup processor. This occurs in up-translate and context-translate programs, in programs that do subdocument processing, and in programs that use an input function to supply input to the markup processor in a do xml-parse and do sgml-parse.
Running two processes in parallel has three principal advantages:
For the most part, you do not need to concern yourself with the mechanics of parallel processing. OmniMark handles all the details for you. However, there are some important restrictions you need to be aware of:
save and save-clear operations are specific to the domain in which they occur.
do xml-parse and do sgml-parse in an input function or in the find rules of an up-translate or context-translate program (unless those rules are processing the results of a submit action initiated in a markup rule, and therefore acting on the output of the markup processor rather than the input).
domain-free modifier. Note that it may not always be obvious which domain a certain piece of code is running in. For instance, a find rule that could be fired either by the main input of a cross-translate or up-translate program, or by input from a submit action in a markup rule would be in one domain in the first instance and in another domain in the second instance.
using nested-referents can only be used in one domain at a time.
| Prerequisite Concepts Pattern and markup processors | Related Syntax context-translate do sgml-parse do xml-parse domain-free up-translate | 
| ---- |