       signal ?-restart? action siglist ?command?

              Warning:   If  signals  are  being used as an event
              source (a trap action), rather than  generating  an
              error  to  terminate  a  task;  one  must  use  the
              -restart option.   This  causes  a  blocked  system
              call,  such  as  read  or  waitpid  to be restarted
              rather than generate an error.  Failure to do  this
              may  results  in  unexpected  errors  when a signal
              arrives while in one of these system  calls.   When
              available,  the  -restart  option  can prevent this
              problem.

              If -restart is specified, restart  blocking  system
              calls  rather than generating an error.  The signal
              will be handled once the Tcl  command  that  issued
              the system call completes.  The -restart options is
              not available on all operating systems and its  use
              will  generate  an  error when it is not supported.
              Use infox have_signal_restart to check  for  avail-
              ability.

              Specify  the  action  to take when a Unix signal is
              received by Extended Tcl, or a program that  embeds
              it.   Siglist  is  a list of either the symbolic or
              numeric Unix signal (the SIG prefix  is  optional).
              Action  is  one of the following actions to be per-
              formed on receipt of the signal.   To  specify  all
              modifiable  signals, use `*' (this will not include
              SIGKILL and SIGSTOP, as they can not be  modified).

              default
                     Perform system default action when signal is
                     received (see signal system call  documenta-
                     tion).

              ignore Ignore the signal.

              error  Generate  a catchable Tcl error.  It will be
                     as if the command that was running  returned
                     an  error.   The  error  code will be in the
                     form:
                          POSIX SIG signame
                     For the death of child signal, signame  will
                     always  be  SIGCHLD,  rather than SIGCLD, to
                     allow writing portable code.

              trap   When the signal occurs, execute command  and
                     continue   execution  if  an  error  is  not
                     returned by command.  The  command  will  be
                     executed in the global context.  The command
                     will be edited before  execution,  replacing
                     occurrences  of  "%S"  with the signal name.
                     Occurrences of "%%" result in a single  "%".
                     This  editing  occurs  just  before the trap
                     command  is  evaluated.   If  an  error   is
                     returned, then follow the standard Tcl error
                     mechanism.  Often command will  just  do  an
                     exit.

              get    Retrieve   the   current   settings  of  the
                     specified signals.  A  keyed  list  will  be
                     returned were the keys are one of the speci-
                     fied signals and the values are a list  con-
                     sisting  of  the  action associated with the
                     signal, a 0 if the signal may  be  delivered
                     (not  block)  and a 1 if it is blocked and a
                     flag  indicating  if  restarting  of  system
                     calls  is  specified.  The actions maybe one
                     of `default',`ignore',  `error'  or  `trap'.
                     If  the action is trap, the third element is
                     the command associated with the action.  The
                     action  `unknown'  is  returned if a non-Tcl
                     signal handler has been associated with  the
                     signal.

              set    Set  signals from a keyed list in the format
                     returned  by  the  get.   For  this  action,
                     siglist  is  the keyed list of signal state.
                     Signals with an action of `unknown' are  not
                     modified.

              block  Block   the  specified  signals  from  being
                     received. (Posix systems only).

              unblock
                     Allow the specified signal to  be  received.
                     Pending  signals will not occur. (Posix sys-
                     tems only).

              The signal action will  remain  enabled  after  the
              specified  signal  has  occurred.  The exception to
              this is SIGCHLD on systems without  Posix  signals.
              For  these systems, SIGCHLD is not be automatically
              reenabled.  After a SIGCHLD signal is  received,  a
              call to wait must be performed to retrieve the exit
              status of the child process before issuing  another
              signal SIGCHLD ... command.  For code that is to be
              portable between both types of  systems,  use  this
              approach.

              Signals  are  not processed until after the comple-
              tion of the Tcl command that is executing when  the
              signal is received.  If an interactive Tcl shell is
              running, then the SIGINT will be set to error, non-
              interactive  Tcl  sessions  leave  SIGINT unchanged
              from when the process started (normally default for
              foreground  processes  and  ignore for processes in
              the background).
