Skip to content
Snippets Groups Projects
Select Git revision
  • benchmark-tools
  • postgres-lambda
  • master default
  • REL9_4_25
  • REL9_5_20
  • REL9_6_16
  • REL_10_11
  • REL_11_6
  • REL_12_1
  • REL_12_0
  • REL_12_RC1
  • REL_12_BETA4
  • REL9_4_24
  • REL9_5_19
  • REL9_6_15
  • REL_10_10
  • REL_11_5
  • REL_12_BETA3
  • REL9_4_23
  • REL9_5_18
  • REL9_6_14
  • REL_10_9
  • REL_11_4
23 results

pqsignal.c

Blame
  • pqsignal.c 1.07 KiB
    /*-------------------------------------------------------------------------
     *
     * pqsignal.c
     *	  reliable BSD-style signal(2) routine stolen from RWW who stole it
     *	  from Stevens...
     *
     * Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
     * Portions Copyright (c) 1994, Regents of the University of California
     *
     *
     * IDENTIFICATION
     *	  $Header: /cvsroot/pgsql/src/interfaces/libpq/pqsignal.c,v 1.13 2001/01/24 19:43:31 momjian Exp $
     *
     * NOTES
     *		This shouldn't be in libpq, but the monitor and some other
     *		things need it...
     *
     *-------------------------------------------------------------------------
     */
    #include <stdlib.h>
    #include <signal.h>
    
    #include "pqsignal.h"
    
    pqsigfunc
    pqsignal(int signo, pqsigfunc func)
    {
    #if !defined(HAVE_POSIX_SIGNALS)
    	return signal(signo, func);
    #else
    	struct sigaction act,
    				oact;
    
    	act.sa_handler = func;
    	sigemptyset(&act.sa_mask);
    	act.sa_flags = 0;
    	if (signo != SIGALRM)
    		act.sa_flags |= SA_RESTART;
    	if (sigaction(signo, &act, &oact) < 0)
    		return SIG_ERR;
    	return oact.sa_handler;
    #endif	 /* !HAVE_POSIX_SIGNALS */
    }