TACL Reference Manual

Built-In Functions and Variables
HP NonStop TACL Reference Manual429513-018
9-343
#SERVER Built-In Function
#SERVER, initialize the IN variable for #SERVER to contain enough DEBUG or
INSPECT commands to ensure that the program gets past the point where it reads
its startup messages.
When communicating with a process, be careful to avoid race conditions.
Coordinate functions that enable communication (such as #SERVER) with
counterpart mechanisms in that process. Deadlock conditions can result if TACL
tries to open a process for communication at the same time that process is trying
to open TACL for communication.
If TACL is unable to allocate space in an OUT or PROMPT variable, the process
doing the WRITE or WRITEREAD receives a file-system error 45 (file is full).
If a server name is eliminated, any variables associated with the server remain the
same. Any processes that still have it open receive a file-system error 66 (device
downed) on subsequent I/O operations using the server name.
To create a server implicitly, run a program and supply and accept data using INV
or OUTV. For additional information, see #NEWPROCESS Built-In Function on
page 9-266 or the RUN[D|V] Command on page 8-156. An implicitly created server
remains in existence until its parent process terminates, or you can delete it using
#SERVER with the KILL option.
If you log off, all server files are deleted immediately.
To synchronize processes that use your TACL server, use the #WAIT built-in
function.
Examples
To create an access name for your TACL process:
#PUSH access_name in_var out_var prompt_var
#SET access_name [#SERVER /IN in_var, PROMPT prompt_var, &
OUT out_var/]