Guardian Procedure Calls Reference Manual
Considerations for Resolving File Names
• All file names are specified using OSS pathname syntax and are resolved using the caller's
OSS current working directory.
• Resolving the problem of spawning remote shell scripts
Use PROCESS_SPAWN_ to spawn a remote shell and pass the name of the script as one
of its arguments. The shell will run the script.
◦
◦ Spawn a local shell and use the Expand file system to read the remote shell script.
Considerations for Resolving External References
• Program file and user library file differences
A user library is an program file containing one or more procedures. The difference between
a program file and the library file is that the library file cannot contain a MAIN procedure
but a program file must contain a MAIN procedure. Undefined external references in a program
file are resolved from the user library, if any, or the system library. Unresolved references in
a library are resolved only from the system library.
• Library conflict PROCESS_SPAWN_ error
The library file for a process can be shared by any number of processes. However, when a
program is shared by two or more processes, all processes must have the same user library
configuration; that is, all processes sharing the program either have the same user library or
have no user library. A library conflict error occurs when there is already a copy of the program
running with a library configuration different from that specified in the call to
PROCESS_SPAWN_.
• I/O error to the home terminal
An I/O error to the home terminal can occur if there are undefined externals in the program
file and PROCESS_SPAWN_ is unable to open or write to the home terminal to display the
undefined externals messages. The Z^TPCDETAIL field of the process-results parameter
contains the file-system error number that resulted from the open or write that failed.
Considerations for Reserved Names
The operating system reserved process name space includes these names: /G/Xname, /G/Yname,
/G/Zname, where name is from 1 through 4 alphanumeric character. You must not use names of
these forms in any application. System-generated process names (from PROCESS_SPAWN_,
PROCESS_CREATE_, NEWPROCESS[NOWAIT], PROCESSNAME_CREATE_,
CREATEPROCESSNAME, and CREATEREMOTENAME) are selected from this set of names. For
more information about reserved process names, see Appendix B: Reserved Process Names.
Keeping Track of OSS Child Processes
Because OSS child processes can migrate from one processor to another, the caller process of an
OSS process should monitor all processors to determine whether its child process is still alive if a
processor goes down. These two examples show how a caller process should handle a processor
down message:
• A child process migrates from a processor that is about fail to a running processor:
The child process migrates from processor 5 to a new process handle on processor 7 by
calling one of the OSS tdm_exec set of functions.
1.
2. processor 5 fails.
3. The caller process receives the processor down message from processor 5. At this point,
the caller process does not know whether its OSS child process still exists, because the
child process could have migrated to another processor before the failure in processor
1116 Guardian Procedure Calls (P)