PHP  
 PHP: Test and Code Coverage Analysis
downloads | QA | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
 

LCOV - code coverage report
Current view: top level - ext/pcntl - php_signal.c (source / functions) Hit Total Coverage
Test: PHP Code Coverage Lines: 13 14 92.9 %
Date: 2014-12-20 Functions: 2 2 100.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :    +----------------------------------------------------------------------+
       3             :    | PHP Version 5                                                        |
       4             :    +----------------------------------------------------------------------+
       5             :    | Copyright (c) 1997-2014 The PHP Group                                |
       6             :    +----------------------------------------------------------------------+
       7             :    | This source file is subject to version 3.01 of the PHP license,      |
       8             :    | that is bundled with this package in the file LICENSE, and is        |
       9             :    | available through the world-wide-web at the following url:           |
      10             :    | http://www.php.net/license/3_01.txt                                  |
      11             :    | If you did not receive a copy of the PHP license and are unable to   |
      12             :    | obtain it through the world-wide-web, please send a note to          |
      13             :    | license@php.net so we can mail you a copy immediately.               |
      14             :    +----------------------------------------------------------------------+
      15             :    | Author: Jason Greene <jason@inetgurus.net>                           |
      16             :    +----------------------------------------------------------------------+
      17             : */
      18             : 
      19             : /* $Id$ */
      20             : 
      21             : #include "TSRM.h"
      22             : #include "php_signal.h"
      23             : #include "Zend/zend.h"
      24             : #include "Zend/zend_signal.h"
      25             : 
      26             : /* php_signal using sigaction is derived from Advanced Programing
      27             :  * in the Unix Environment by W. Richard Stevens p 298. */
      28           6 : Sigfunc *php_signal4(int signo, Sigfunc *func, int restart, int mask_all)
      29             : {
      30             :         struct sigaction act,oact;
      31             : #ifdef ZEND_SIGNALS
      32             :         TSRMLS_FETCH();
      33             : #endif
      34           6 :         act.sa_handler = func;
      35             : 
      36           6 :         if (mask_all) {
      37           5 :                 sigfillset(&act.sa_mask);
      38             :         } else {
      39           1 :                 sigemptyset(&act.sa_mask);
      40             :         }
      41           6 :         act.sa_flags = 0;
      42           8 :         if (signo == SIGALRM || (! restart)) {
      43             : #ifdef SA_INTERRUPT
      44           2 :                 act.sa_flags |= SA_INTERRUPT; /* SunOS */
      45             : #endif
      46             :         } else {
      47             : #ifdef SA_RESTART
      48           4 :                 act.sa_flags |= SA_RESTART; /* SVR4, 4.3+BSD */
      49             : #endif
      50             :         }
      51             : #ifdef ZEND_SIGNALS
      52             :         if (zend_sigaction(signo, &act, &oact TSRMLS_CC) < 0)
      53             : #else
      54           6 :         if (sigaction(signo, &act, &oact) < 0)
      55             : #endif
      56             :         {
      57           0 :                 return SIG_ERR;
      58             :         }
      59             : 
      60           6 :         return oact.sa_handler;
      61             : }
      62             : 
      63           1 : Sigfunc *php_signal(int signo, Sigfunc *func, int restart)
      64             : {
      65           1 :         return php_signal4(signo, func, restart, 0);
      66             : }
      67             : 
      68             : /*
      69             :  * Local variables:
      70             :  * tab-width: 4
      71             :  * c-basic-offset: 4
      72             :  * End:
      73             :  * vim600: noet sw=4 ts=4 fdm=marker
      74             :  * vim<600: noet sw=4 ts=4
      75             :  */

Generated by: LCOV version 1.10

Generated at Sun, 21 Dec 2014 04:58:54 +0000 (16 hours ago)

Copyright © 2005-2014 The PHP Group
All rights reserved.