예제 #1
0
 /**
  * This is the class constructor, initializes the object.
  * @access public
  */
 public function __construct()
 {
     /* record pid of parent process */
     self::$parent_pid = getmypid();
     /* install signal handlers */
     declare (ticks=1);
     pcntl_signal(SIGHUP, array(&$this, 'signal_handler_sighup'));
     pcntl_signal(SIGCHLD, array(&$this, 'signal_handler_sigchild'));
     pcntl_signal(SIGTERM, array(&$this, 'signal_handler_sigint'));
     pcntl_signal(SIGINT, array(&$this, 'signal_handler_sigint'));
     pcntl_signal(SIGALRM, SIG_IGN);
     pcntl_signal(SIGUSR2, SIG_IGN);
     pcntl_signal(SIGBUS, SIG_IGN);
     pcntl_signal(SIGPIPE, SIG_IGN);
     pcntl_signal(SIGABRT, SIG_IGN);
     pcntl_signal(SIGFPE, SIG_IGN);
     pcntl_signal(SIGILL, SIG_IGN);
     pcntl_signal(SIGQUIT, SIG_IGN);
     pcntl_signal(SIGTRAP, SIG_IGN);
     pcntl_signal(SIGSYS, SIG_IGN);
     /* add barracuda specific prefork functions (doesn't hurt anything) */
     $this->parent_function_prefork = array('db_clear_connection_cache', 'memcache_clear_connection_cache');
 }