|
|||||
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 |
---- |