       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 gener-
              ate  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 availability.

              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 sig-
              nals,  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 documentation).

              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 exe-
                     cution if an error is not returned by command.  The  com-
                     mand 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 fol-
                     low 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  specified signals and the values are a list consist-
                     ing 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 sig-
                     nals will not occur. (Posix systems only).

              The signal action will remain enabled after the specified signal
              has occurred.  The exception to this is SIGCHLD on systems with-
              out Posix signals.  For these systems, SIGCHLD is not  be  auto-
              matically 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 completion 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 pro-
              cesses and ignore for processes in the background).
