When kind mismatch occured, pgpool detached master node.
{ \
if (failover_request) \
{ \
- failover(failover_request); \
+ failover(failover_signo); \
failover_request = 0; \
} \
if (sigchld_request) \
static volatile sig_atomic_t failover_request = 0;
static volatile sig_atomic_t sigchld_request = 0;
static int pipe_fds[2]; /* for delivering signals */
+static volatile int failover_signo = 0;
int myargc;
char **myargv;
{
POOL_SETMASK(&BlockSig);
failover_request = 1;
+ failover_signo = sig;
write(pipe_fds[1], "\0", 1);
POOL_SETMASK(&UnBlockSig);
}