Using #SERVER
Initiating and Communicating With Processes
107365 Tandem Computers Incorporated
5–29
Stopping a Process That Communicates Using $RECEIVE
Your ability to stop this type of process depends on how the process started and your
access capabilities. The process might stop if one of the following occurs:
The process finishes its work and stops its own execution.
The originating process terminates.
The originating process sends an end-of-file or other end signal (for example, exit
for FUP).
Using #SERVER
If you want your TACL program to communicate with more than one process at once,
you can define subdevice names for it. This qualified process name is known as a
server path. Processes can use the server path to open your TACL process by name.
This mechanism is very flexible; it can be used for complex processing such as
multiple input streams.
Your TACL process must have a process name for you to be able to use #SERVER.
For information about accessing a TACL process as a server, see Section 6, “Running
TACL as a Server.”
Naming Your Process
To create a server path for your TACL process, use the #SERVER built-in function.
After TACL creates the name, other processes can open your TACL as if it were a file
so that you can write to and read from those processes. For example:
#PUSH server_name in_var out_var prompt_var
#SET server_name [#PROCESSINFO/PROCESSID/].#A39
SINK [#SERVER /IN in_var, PROMPT prompt_var, OUT out_var/ &
[server_name]]
Valid names consist of your TACL process name followed by a period, a number sign
(#), a letter, and zero to six alphanumeric characters ($T127.#A39, for example). If you
want, that name can be followed by another period, a letter, and zero to seven
alphanumeric characters ($T127.#A39.Z48F, for example).
If you do not specify a name, TACL supplies the name for you. The name consists of
the process name of your TACL followed by a period, a number sign, the letter S, and
a number in the range 0 through 32767:
#PUSH server_name in_var out_var prompt_var
#SET server_name [#SERVER /IN in_var, PROMPT prompt_var, &
OUT out_var/]