| From: | spshealy(at)yahoo(dot)com |
|---|---|
| To: | pgsql-hackers(at)postgresql(dot)org |
| Subject: | SIGCHLD handler in Postgres C function. |
| Date: | 2001-07-12 04:40:55 |
| Message-ID: | 4cdf286e.0107112040.4d22874a@posting.google.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
I was wondering if some of you Postgres hackers could advise me on the
safety of the following. I have written a postgres C function that
uses a popen linux system call. Orginally when I first tried it I kept
getting an ECHILD. I read a little bit more on the pclose function
and the wait system calls and discoverd that on LINUX if the signal
handler for SIGCHLD is set to SIG_IGN you will get the ECHILD error
on pclose(or wait4 for that matter). So I did some snooping around in
the postgres backend code and found that in the traffic cop that the
SIGCHLD signal handler is set to SIG_IGN. So in my C function right
before the popen call I set the signal handler for SIGCHLD to SIG_DFL
and right after the pclose I set it back to SIG_IGN. I tested this
and it seems to solve my problem. Not knowing much about the
internals of the postgres backend I would like to know... Is setting
the signal handler to SIG_IGN temorarily going to do anything funky
with by database or the backend?
Thanks in advance for your insights,
Scott Shealy
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Klaus Reger | 2001-07-12 05:05:23 | Re: Repost: Get table/field-identifiers in uppercase |
| Previous Message | Bruce Momjian | 2001-07-12 03:50:26 | Re: Possible bug in plpgsql/src/gram.y |