Re: C function - other process

From: Michael Fuhr <mike(at)fuhr(dot)org>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Jakub Wo?ny <kubaw(at)o2(dot)pl>, pgsql-sql(at)postgresql(dot)org
Subject: Re: C function - other process
Date: 2005-04-22 20:01:50
Message-ID: 20050422200150.GA93845@winnie.fuhr.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Fri, Apr 22, 2005 at 03:39:55PM -0400, Tom Lane wrote:
> Jakub =?ISO-8859-2?Q?Wo=BCny?= <kubaw(at)o2(dot)pl> writes:
> > I wrote a simple function:
>
> > signal(SIGCHLD,SIG_IGN);
> > switch(fork())
>
> This will NOT work. It WILL corrupt your database. You do not get to
> randomly introduce new processes into the backend set.

What about fork() followed by exec*(), either explicitly or via
popen(), system(), etc.? Should these be avoided as well, or is
there a safe way to do them? I'm thinking of the case where a
user-defined function wants to invoke some external command -- I've
done that in experiments but I've never been sure how safe it was.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Tom Lane 2005-04-22 20:07:48 Re: C function - other process
Previous Message Tom Lane 2005-04-22 19:39:55 Re: C function - other process