home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat5 / signal.z / signal
Encoding:
Text File  |  2002-10-03  |  28.1 KB  |  397 lines

  1.  
  2.  
  3.  
  4. SSSSIIIIGGGGNNNNAAAALLLL((((5555))))                                                            SSSSIIIIGGGGNNNNAAAALLLL((((5555))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      _ssss_iiii_gggg_nnnn_aaaa_llll - base signals
  10.  
  11. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.      _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_ssss_iiii_gggg_nnnn_aaaa_llll_...._hhhh_>>>>
  13.  
  14. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  15.      A signal is an asynchronous notification of an event.  A signal is said
  16.      to be generated for (or sent to) a process or a thread when the event
  17.      associated with that signal first occurs.  Examples of such events
  18.      include hardware faults, timer expiration and terminal activity, as well
  19.      as the invocation of the _kkkk_iiii_llll_llll(2), _ssss_iiii_gggg_qqqq_uuuu_eeee_uuuu_eeee(3) or _ssss_iiii_gggg_ssss_eeee_nnnn_dddd(2) system calls.
  20.      In some circumstances, the same event generates signals for multiple
  21.      processes.  A process may request a detailed notification of the source
  22.      of the signal and the reason why it was generated [see _ssss_iiii_gggg_iiii_nnnn_ffff_oooo(5)].
  23.  
  24.      At the time of generation, the system will determine whether the signal
  25.      is directed at a process or a specific thread within that process.
  26.      Signals that are naturally associated with a particular thread, such as
  27.      hardware faults, are directed to the appropriate thread.  This is usually
  28.      due to the signal being generated during the execution of the thread and,
  29.      moreover, in the context of executing that thread.  Signals that are sent
  30.      to a process tend to be those that are generated asynchronously with
  31.      respect to the execution of the process.  Signals generated by the _k_i_l_l
  32.      interface or sent as a result of a tty interrupt are examples of signals
  33.      directed at a process.
  34.  
  35.      Each process may specify a system action to be taken in response to each
  36.      signal sent to it, called the signal's disposition.  For multithreaded
  37.      processes, the disposition is shared by all threads in the process.  The
  38.      set of system signal actions for a process is initialized from that of
  39.      its parent.  Once an action is installed for a specific signal, it
  40.      usually remains installed until another disposition is explicitly
  41.      requested by a call to either _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2), _ssss_iiii_gggg_nnnn_aaaa_llll(2), _ssss_iiii_gggg_nnnn_aaaa_llll(3B),
  42.      _ssss_iiii_gggg_vvvv_eeee_cccc(3B) or _ssss_iiii_gggg_ssss_eeee_tttt(2), or until the process execs [see _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2) and
  43.      _ssss_iiii_gggg_nnnn_aaaa_llll(2)].  When a process execs, all signals whose disposition has been
  44.      set to catch the signal will be set to _SSSS_IIII_GGGG______DDDD_FFFF_LLLL.  Alternatively, a process
  45.      may request that the system automatically reset the disposition of a
  46.      signal to _SSSS_IIII_GGGG______DDDD_FFFF_LLLL after it has been caught [see _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2) and
  47.      _ssss_iiii_gggg_nnnn_aaaa_llll(2)].
  48.  
  49.      A signal is said to be delivered to a process or thread when the
  50.      appropriate action for the signal is taken.  During the time between the
  51.      generation of a signal and its delivery, the signal is said to be pending
  52.      [see _ssss_iiii_gggg_pppp_eeee_nnnn_dddd_iiii_nnnn_gggg(2)].  Ordinarily, this interval cannot be detected by an
  53.      application.  However, a signal can be blocked from delivery to a thread
  54.      [see _ssss_iiii_gggg_hhhh_oooo_llll_dddd(2), _ssss_iiii_gggg_bbbb_llll_oooo_cccc_kkkk(3) and _ssss_iiii_gggg_pppp_rrrr_oooo_cccc_mmmm_aaaa_ssss_kkkk(2)].  If the action
  55.      associated with a blocked signal is anything other than to ignore the
  56.      signal, and if that signal is generated for the process or thread, the
  57.      signal remains pending until either it is unblocked or the signal's
  58.      disposition requests that the signal be ignored.  Signals generated for
  59.      the process shall be delivered to exactly one of the threads within the
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. SSSSIIIIGGGGNNNNAAAALLLL((((5555))))                                                            SSSSIIIIGGGGNNNNAAAALLLL((((5555))))
  71.  
  72.  
  73.  
  74.      process.  The thread must either be executing the _s_i_g_w_a_i_t function
  75.      selecting that signal or it must not be blocking delivery of the signal.
  76.      If there are no threads in a call to a _s_i_g_w_a_i_t function selecting that
  77.      signal, and if all threads within the process block delivery of the
  78.      signal, the signal shall remain pending of the process until either a
  79.      thread calls a _s_i_g_w_a_i_t function selecting that signal, a thread unblocks
  80.      delivery of that signal, or the action associated with the signal is set
  81.      to ignore the signal.  If the signal disposition of a blocked signal
  82.      requests that the signal be ignored, and if that signal is generated for
  83.      the process or thread, the signal is discarded immediately upon
  84.      generation.
  85.  
  86.      On IRIX, a pending signal is usually delivered when a thread returns from
  87.      the kernel. This happens at the end of a system call or at the end of a
  88.      hardware interrupt. Since the scheduling clock interrupt occurs at a
  89.      regular 10 msec interval, this means that the latency between the
  90.      generation of a signal and its delivery can never be more than 10 msec.
  91.      For real-time application(defined as process with high band non-degrading
  92.      priority), a generation of a signal always force an immediate signal
  93.      delivery.
  94.  
  95.      Each thread has a signal mask that defines the set of signals currently
  96.      blocked from delivery to it [see _ssss_iiii_gggg_pppp_rrrr_oooo_cccc_mmmm_aaaa_ssss_kkkk(2) or _pppp_tttt_hhhh_rrrr_eeee_aaaa_dddd______ssss_iiii_gggg_mmmm_aaaa_ssss_kkkk(3P)].
  97.      The signal mask for a thread is initialized from the thread that created
  98.      it.
  99.  
  100.      The determination of which action is taken in response to a signal is
  101.      made at the time the signal is delivered, allowing for any changes since
  102.      the time of generation.  This determination is independent of the means
  103.      by which the signal was originally generated.
  104.  
  105.      The signals currently defined in _ssss_iiii_gggg_nnnn_aaaa_llll_...._hhhh are as follows:
  106.  
  107.     Name         Value   Default   Event
  108.     __________________________________________________________________________
  109.     _SSSS_IIII_GGGG_HHHH_UUUU_PPPP       1       Exit      Hangup [see _tttt_eeee_rrrr_mmmm_iiii_oooo(7)]
  110.     _SSSS_IIII_GGGG_IIII_NNNN_TTTT       2       Exit      Interrupt [see _tttt_eeee_rrrr_mmmm_iiii_oooo(7)]
  111.     _SSSS_IIII_GGGG_QQQQ_UUUU_IIII_TTTT      3       Core      Quit [see _tttt_eeee_rrrr_mmmm_iiii_oooo(7)]
  112.     _SSSS_IIII_GGGG_IIII_LLLL_LLLL       4       Core      Illegal Instruction
  113.     _SSSS_IIII_GGGG_TTTT_RRRR_AAAA_PPPP      5       Core      Trace, Breakpoint, Range Error
  114.                                    Divide by Zero, or Overflow Trap
  115.     _SSSS_IIII_GGGG_AAAA_BBBB_RRRR_TTTT      6       Core      Abort
  116.     _SSSS_IIII_GGGG_EEEE_MMMM_TTTT       7       Core      Emulation Trap
  117.     _SSSS_IIII_GGGG_FFFF_PPPP_EEEE       8       Core      Arithmetic Exception
  118.     _SSSS_IIII_GGGG_KKKK_IIII_LLLL_LLLL      9       Exit      Killed
  119.     _SSSS_IIII_GGGG_BBBB_UUUU_SSSS       10      Core      Bus Error
  120.     _SSSS_IIII_GGGG_SSSS_EEEE_GGGG_VVVV      11      Core      Segmentation Fault
  121.     _SSSS_IIII_GGGG_SSSS_YYYY_SSSS       12      Core      Bad System Call
  122.     _SSSS_IIII_GGGG_PPPP_IIII_PPPP_EEEE      13      Exit      Broken Pipe
  123.     _SSSS_IIII_GGGG_AAAA_LLLL_RRRR_MMMM      14      Exit      Alarm Clock
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. SSSSIIIIGGGGNNNNAAAALLLL((((5555))))                                                            SSSSIIIIGGGGNNNNAAAALLLL((((5555))))
  137.  
  138.  
  139.  
  140.     _SSSS_IIII_GGGG_TTTT_EEEE_RRRR_MMMM      15      Exit      Terminated
  141.     _SSSS_IIII_GGGG_UUUU_SSSS_RRRR_1111      16      Exit      User Signal 1
  142.     _SSSS_IIII_GGGG_UUUU_SSSS_RRRR_2222      17      Exit      User Signal 2
  143.     _SSSS_IIII_GGGG_CCCC_HHHH_LLLL_DDDD      18      Ignore    Child Status Changed
  144.     _SSSS_IIII_GGGG_PPPP_WWWW_RRRR       19      Ignore    Power Fail/Restart
  145.     _SSSS_IIII_GGGG_WWWW_IIII_NNNN_CCCC_HHHH     20      Ignore    Window Size Change
  146.     _SSSS_IIII_GGGG_UUUU_RRRR_GGGG       21      Ignore    Urgent Socket Condition
  147.     _SSSS_IIII_GGGG_PPPP_OOOO_LLLL_LLLL      22      Exit      Pollable Event [see _ssss_tttt_rrrr_eeee_aaaa_mmmm_iiii_oooo(7)]
  148.     _SSSS_IIII_GGGG_IIII_OOOO        22      Exit      input/output possible signal
  149.     _SSSS_IIII_GGGG_SSSS_TTTT_OOOO_PPPP      23      Stop      Stopped (signal)
  150.     _SSSS_IIII_GGGG_TTTT_SSSS_TTTT_PPPP      24      Stop      Stopped (user) [see _tttt_eeee_rrrr_mmmm_iiii_oooo(7)]
  151.     _SSSS_IIII_GGGG_CCCC_OOOO_NNNN_TTTT      25      Ignore    Continued
  152.     _SSSS_IIII_GGGG_TTTT_TTTT_IIII_NNNN      26      Stop      Stopped (tty input) [see _tttt_eeee_rrrr_mmmm_iiii_oooo(7)]
  153.     _SSSS_IIII_GGGG_TTTT_TTTT_OOOO_UUUU      27      Stop      Stopped (tty output) [see _tttt_eeee_rrrr_mmmm_iiii_oooo(7)]
  154.     _SSSS_IIII_GGGG_VVVV_TTTT_AAAA_LLLL_RRRR_MMMM    28      Exit      Virtual Timer Expired
  155.     _SSSS_IIII_GGGG_PPPP_RRRR_OOOO_FFFF      29      Exit      Profiling Timer Expired
  156.     _SSSS_IIII_GGGG_XXXX_CCCC_PPPP_UUUU      30      Core      CPU time limit exceeded [see _gggg_eeee_tttt_rrrr_llll_iiii_mmmm_iiii_tttt(2)]
  157.     _SSSS_IIII_GGGG_XXXX_FFFF_SSSS_ZZZZ      31      Core      File size limit exceeded [see _gggg_eeee_tttt_rrrr_llll_iiii_mmmm_iiii_tttt(2)]
  158.     _SSSS_IIII_GGGG_CCCC_KKKK_PPPP_TTTT      33      Ignore    Checkpoint warning [see _cccc_pppp_rrrr(1)]
  159.     _SSSS_IIII_GGGG_RRRR_EEEE_SSSS_TTTT_AAAA_RRRR_TTTT   34      Ignore    Restart warning [see _cccc_pppp_rrrr(1)]
  160.     _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_IIII_NNNN     49      Exit      POSIX 1003.1b SIGRTMIN
  161.     _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_AAAA_XXXX     64      Exit      POSIX 1003.1b SIGRTMAX
  162.  
  163.      IRIX supports all signal numbers between 0 and 64. All signals between 0
  164.      and 32 are currently used. POSIX 1003.1b reserves all signals between
  165.      _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_IIII_NNNN and _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_AAAA_XXXX for real-time applications.  Even though the kernel
  166.      does not use any signals between 35 and 64, signal number between 35 and
  167.      49 are not guaranteed to be available to user programs in future
  168.      releases. Further more, the default behavior for signals between 35 and
  169.      49 is to exit.
  170.  
  171.      No signals beyond 32 are applicable to the Berkeley signal functions
  172.      because these functions use a fixed 32 bits signal mask as part the
  173.      programming interface.
  174.  
  175.      Higher priority signals are delivered first when multiple unblocked
  176.      signals are pending in order to prioritize event notifications. On the
  177.      other hand, a lower priority signal can not preempt a higher priority
  178.      signal handler.
  179.  
  180.      All signals between 0 and 32 are of equal priority but all are at higher
  181.      priority than signals between _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_IIII_NNNN and _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_AAAA_XXXX.  Within the range of
  182.      _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_IIII_NNNN to _SSSS_IIII_GGGG_RRRR_TTTT_MMMM_AAAA_XXXX, the lower the signal number the higher the priority
  183.      of that signal.
  184.  
  185.      Using the _ssss_iiii_gggg_nnnn_aaaa_llll(2), _ssss_iiii_gggg_nnnn_aaaa_llll(3B), _ssss_iiii_gggg_ssss_eeee_tttt(2), _ssss_iiii_gggg_vvvv_eeee_cccc(3B)  or _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2)
  186.      system call, a process may specify one of three dispositions for a
  187.      signal:  take the default action for the signal, ignore the signal, or
  188.      catch the signal.
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. SSSSIIIIGGGGNNNNAAAALLLL((((5555))))                                                            SSSSIIIIGGGGNNNNAAAALLLL((((5555))))
  203.  
  204.  
  205.  
  206.    DDDDeeeeffffaaaauuuulllltttt AAAAccccttttiiiioooonnnn:::: _SSSS_IIII_GGGG______DDDD_FFFF_LLLL
  207.      A disposition of _SSSS_IIII_GGGG______DDDD_FFFF_LLLL specifies the default action.  The default
  208.      action for each signal is listed in the table above and is selected from
  209.      the following:
  210.  
  211.      Exit    When it gets the signal, the receiving process is to be
  212.              abnormally terminated with all the consequences outlined in
  213.              ______eeee_xxxx_iiii_tttt(2).
  214.  
  215.      Core    When it gets the signal, the receiving process is to be
  216.              abnormally terminated with all the consequences outlined in
  217.              ______eeee_xxxx_iiii_tttt(2).  In addition, a ``core image'' of the process is
  218.              constructed in the current working directory.
  219.  
  220.      Stop    When it gets the signal, the receiving process is to stop.
  221.  
  222.      Ignore  When it gets the signal, the receiving process is to ignore it.
  223.              This is identical to setting the disposition to _SSSS_IIII_GGGG______IIII_GGGG_NNNN.
  224.  
  225.    IIIIggggnnnnoooorrrreeee SSSSiiiiggggnnnnaaaallll:::: _SSSS_IIII_GGGG______IIII_GGGG_NNNN
  226.      A disposition of _SSSS_IIII_GGGG______IIII_GGGG_NNNN specifies that the signal is to be ignored.
  227.  
  228.    CCCCaaaattttcccchhhh SSSSiiiiggggnnnnaaaallll:::: _f_u_n_c_t_i_o_n _a_d_d_r_e_s_s
  229.      A disposition that is a function address specifies that, when it gets the
  230.      signal, the receiving thread is to execute the signal handler at the
  231.      specified address. Under IRIX, there are two ways a signal handler can be
  232.      delivered.  If _SSSS_AAAA______SSSS_IIII_GGGG_IIII_NNNN_FFFF_OOOO is set in the field _s_a__f_l_a_g_s of the _s_i_g_a_c_t_i_o_n__t
  233.      structure during a previous call to the _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2) function for the
  234.      signal being delivered, the signal handler will be invoked as follows:
  235.  
  236.           hhhhaaaannnnddddlllleeeerrrr ((((iiiinnnntttt ssssiiiigggg,,,, ssssiiiiggggiiiinnnnffffoooo____tttt ****ssssiiiipppp,,,, uuuuccccoooonnnntttteeeexxxxtttt____tttt ****uuuupppp))));;;;
  237.  
  238.      otherwise the signal handler will be invoked as follows:
  239.  
  240.           hhhhaaaannnnddddlllleeeerrrr ((((iiiinnnntttt ssssiiiigggg,,,, iiiinnnntttt ccccooooddddeeee,,,, ssssttttrrrruuuucccctttt ssssiiiiggggccccoooonnnntttteeeexxxxtttt ****sssscccc))));;;;
  241.  
  242.      Where _h_a_n_d_l_e_r is the specified signal handler function-name.  Due to
  243.      historic implementations, signal handlers have been defined with zero,
  244.      one, or three parameters.  To avoid source incompatibilities, in _CCCC, the
  245.      prototype for the signal handler has intentionally been left empty.  _CCCC_++++_++++
  246.      requires a prototype, so a compromise must be made.  _CCCC_++++_++++ user's should
  247.      cast their handler to the type _SSSS_IIII_GGGG______PPPP_FFFF in order to be portable.
  248.  
  249.      Please see _ssss_iiii_gggg_iiii_nnnn_ffff_oooo(5) and _uuuu_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt(5) for more details on the meanings of
  250.      the passed in parameters of the first form.  The second form is the
  251.      default system behavior.
  252.  
  253.      In the second form, _c_o_d_e is valid only in the following cases:
  254.  
  255.      Condition                        Signal      Code
  256.  
  257.      User breakpoint                  SIGTRAP     BRK_USERBP
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. SSSSIIIIGGGGNNNNAAAALLLL((((5555))))                                                            SSSSIIIIGGGGNNNNAAAALLLL((((5555))))
  269.  
  270.  
  271.  
  272.      User breakpoint                  SIGTRAP     BRK_SSTEPBP
  273.      Integer overflow                 SIGFPE      BRK_OVERFLOW
  274.      Divide by zero                   SIGFPE      BRK_DIVZERO
  275.      Multiply overflow                SIGFPE      BRK_MULOVF
  276.      Invalid virtual address          SIGSEGV     EFAULT
  277.      Read-only address                SIGSEGV     EACCES
  278.      Read beyond mapped object        SIGSEGV     ENXIO
  279.      Autogrow for file failed         SIGSEGV     ENOSPC
  280.      Automatic memory lock failed     SIGSEGV     ENOMEM
  281.      Too many mappings to a page      SIGBUS      E2BIG
  282.  
  283.      Integer divide by zero, multiply overflow, integer overflow, and range
  284.      errors are special cases. If the binary is not an IRIX 4 binary and a
  285.      signal handler is installed for SIGFPE then the SIGFPE handler is called,
  286.      otherwise SIGTRAP is called. This behavior is included to keep older IRIX
  287.      4 and IRIX 5 binaries working, however the correct way to code a handler
  288.      is to use SIGFPE.
  289.  
  290.      The third argument _s_c of the second form is a pointer to a _s_t_r_u_c_t
  291.      _s_i_g_c_o_n_t_e_x_t (defined in <_s_y_s/_s_i_g_n_a_l._h>) that contains the processor
  292.      context at the time of the signal.
  293.  
  294.      When the signal handler returns, the receiving thread resumes execution
  295.      at the point it was interrupted, unless the signal handler makes other
  296.      arrangements.  If an invalid function address is specified, results are
  297.      undefined.
  298.  
  299.      If the disposition has been set with the _ssss_iiii_gggg_nnnn_aaaa_llll(3B), _ssss_iiii_gggg_ssss_eeee_tttt(2),
  300.      _ssss_iiii_gggg_vvvv_eeee_cccc(3B) or _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2) function, the signal is automatically blocked
  301.      by the system while the signal catcher is executing.  If a _llll_oooo_nnnn_gggg_jjjj_mmmm_pppp [see
  302.      _ssss_eeee_tttt_jjjj_mmmm_pppp(3C)] is used to leave the signal catcher, then the signal must be
  303.      explicitly unblocked by the user [see _ssss_iiii_gggg_rrrr_eeee_llll_ssss_eeee(2), _ssss_iiii_gggg_pppp_rrrr_oooo_cccc_mmmm_aaaa_ssss_kkkk(2), and
  304.      _pppp_tttt_hhhh_rrrr_eeee_aaaa_dddd______ssss_iiii_gggg_mmmm_aaaa_ssss_kkkk(3P)].
  305.  
  306.      If execution of the signal handler interrupts a blocked system call, the
  307.      handler is executed and the interrupted system call returns a -1 to the
  308.      calling thread with _eeee_rrrr_rrrr_nnnn_oooo set to _EEEE_IIII_NNNN_TTTT_RRRR.  However, if the _SSSS_AAAA______RRRR_EEEE_SSSS_TTTT_AAAA_RRRR_TTTT flag
  309.      is set the system call will be transparently restarted.
  310.  
  311. NNNNOOOOTTTTEEEESSSS
  312.      The dispositions of the _SSSS_IIII_GGGG_KKKK_IIII_LLLL_LLLL and _SSSS_IIII_GGGG_SSSS_TTTT_OOOO_PPPP signals cannot be altered
  313.      from their default values.  The system generates an error if this is
  314.      attempted.
  315.  
  316.      The _SSSS_IIII_GGGG_KKKK_IIII_LLLL_LLLL and _SSSS_IIII_GGGG_SSSS_TTTT_OOOO_PPPP signals cannot be blocked.  The system silently
  317.      enforces this restriction.
  318.  
  319.      Whenever a process receives a _SSSS_IIII_GGGG_SSSS_TTTT_OOOO_PPPP, _SSSS_IIII_GGGG_TTTT_SSSS_TTTT_PPPP, _SSSS_IIII_GGGG_TTTT_TTTT_IIII_NNNN, or _SSSS_IIII_GGGG_TTTT_TTTT_OOOO_UUUU
  320.      signal, regardless of its disposition, any pending _SSSS_IIII_GGGG_CCCC_OOOO_NNNN_TTTT signal are
  321.      discarded. Further more, the process will not act upon any delivered
  322.      signals other than _SSSS_IIII_GGGG_KKKK_IIII_LLLL_LLLL until a _SSSS_IIII_GGGG_CCCC_OOOO_NNNN_TTTT is received.
  323.  
  324.  
  325.  
  326.  
  327.                                                                         PPPPaaaaggggeeee 5555
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334. SSSSIIIIGGGGNNNNAAAALLLL((((5555))))                                                            SSSSIIIIGGGGNNNNAAAALLLL((((5555))))
  335.  
  336.  
  337.  
  338.      Whenever a process receives a _SSSS_IIII_GGGG_CCCC_OOOO_NNNN_TTTT signal, regardless of its
  339.      disposition, any pending _SSSS_IIII_GGGG_SSSS_TTTT_OOOO_PPPP, _SSSS_IIII_GGGG_TTTT_SSSS_TTTT_PPPP, _SSSS_IIII_GGGG_TTTT_TTTT_IIII_NNNN, and _SSSS_IIII_GGGG_TTTT_TTTT_OOOO_UUUU signals
  340.      is discarded.  In addition, if the process was stopped, it is continued.
  341.  
  342.      When a signal is delivered to a thread, if the action of that signal
  343.      specifies termination, stop, or continue, all the threads in the process
  344.      shall be terminated, stopped, or continued, respectively.
  345.  
  346.      Processes which are blocked via a _b_l_o_c_k_p_r_o_c system call will unblock if
  347.      they receive a signal which is fatal (i.e., a non-job-control signal
  348.      which the are NOT catching), but will still be stopped if the job of
  349.      which they are a part is stopped.  Only upon restart will they die.  Any
  350.      non-fatal signals received by a blocked process will NOT cause the
  351.      process to be unblocked (an _u_n_b_l_o_c_k_p_r_o_c(2) or _u_n_b_l_o_c_k_p_r_o_c_a_l_l(2) system
  352.      call is necessary).
  353.  
  354.      _SSSS_IIII_GGGG_PPPP_OOOO_LLLL_LLLL is issued when a file descriptor corresponding to a STREAMS [see
  355.      _iiii_nnnn_tttt_rrrr_oooo(2)] file has a ``selectable'' event pending.  A process must
  356.      specifically request that this signal be sent using the _IIII______SSSS_EEEE_TTTT_SSSS_IIII_GGGG _iiii_oooo_cccc_tttt_llll
  357.      call.  Otherwise, the process will never receive _SSSS_IIII_GGGG_PPPP_OOOO_LLLL_LLLL.
  358.  
  359.      If the disposition of the _SSSS_IIII_GGGG_CCCC_HHHH_LLLL_DDDD signal has been set with _ssss_iiii_gggg_nnnn_aaaa_llll, _ssss_iiii_gggg_vvvv_eeee_cccc
  360.      or _ssss_iiii_gggg_ssss_eeee_tttt, or with _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn and the _SSSS_AAAA______NNNN_OOOO_CCCC_LLLL_DDDD_SSSS_TTTT_OOOO_PPPP flag has been
  361.      specified, it will only be sent to the calling process when its children
  362.      exit; otherwise, it will also be sent when the calling process's children
  363.      are stopped or continued due to job control.
  364.  
  365.      The name _SSSS_IIII_GGGG_CCCC_LLLL_DDDD is also defined in this header file and identifies the
  366.      same signal as _SSSS_IIII_GGGG_CCCC_HHHH_LLLL_DDDD. _SSSS_IIII_GGGG_CCCC_LLLL_DDDD is provided for backward compatibility,
  367.      new applications should use _SSSS_IIII_GGGG_CCCC_HHHH_LLLL_DDDD.
  368.  
  369.      The disposition of signals that are inherited as _SSSS_IIII_GGGG______IIII_GGGG_NNNN should not be
  370.      changed.
  371.  
  372.      A call to _s_i_g_n_a_l cancels a pending signal _s_i_g except for a pending
  373.      _SSSS_IIII_GGGG_KKKK_IIII_LLLL_LLLL signal.
  374.  
  375.      A call to _s_i_g_s_e_t with a signal handler other than _SSSS_IIII_GGGG______IIII_GGGG_NNNN will
  376.      automatically allow pending signals for the set signal to come in.
  377.  
  378. SSSSEEEEEEEE AAAALLLLSSSSOOOO
  379.      _eeee_xxxx_iiii_tttt(2), _gggg_eeee_tttt_rrrr_llll_iiii_mmmm_iiii_tttt(2), _iiii_nnnn_tttt_rrrr_oooo(2), _kkkk_iiii_llll_llll(2), _pppp_aaaa_uuuu_ssss_eeee(2), _pppp_tttt_hhhh_rrrr_eeee_aaaa_dddd______kkkk_iiii_llll_llll(3P),
  380.      _pppp_tttt_hhhh_rrrr_eeee_aaaa_dddd______ssss_iiii_gggg_mmmm_aaaa_ssss_kkkk(3P), _ssss_iiii_gggg_aaaa_cccc_tttt_iiii_oooo_nnnn(2), _ssss_iiii_gggg_aaaa_llll_tttt_ssss_tttt_aaaa_cccc_kkkk(2), _ssss_iiii_gggg_nnnn_aaaa_llll(2), _ssss_iiii_gggg_ssss_eeee_tttt(2),
  381.      _ssss_iiii_gggg_nnnn_aaaa_llll(3B), _ssss_iiii_gggg_pppp_rrrr_oooo_cccc_mmmm_aaaa_ssss_kkkk(2), _ssss_iiii_gggg_ssss_eeee_nnnn_dddd(2), _ssss_iiii_gggg_qqqq_uuuu_eeee_uuuu_eeee(3), _ssss_iiii_gggg_ssss_uuuu_ssss_pppp_eeee_nnnn_dddd(2),
  382.      _wwww_aaaa_iiii_tttt(2), _ssss_iiii_gggg_ssss_eeee_tttt_oooo_pppp_ssss(3C), _ssss_iiii_gggg_iiii_nnnn_ffff_oooo(5), _uuuu_cccc_oooo_nnnn_tttt_eeee_xxxx_tttt(5)
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.                                                                         PPPPaaaaggggeeee 6666
  394.  
  395.  
  396.  
  397.