       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 speci-
                     fied signals.  A keyed list will be returned
                     were  the keys are one of the specified sig-
                     nals and the values are a list consisting 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 indicat-
                     ing if restarting of system calls is  speci-
                     fied.     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).

              This command is provided by Extended Tcl.
