pgsql/src/interfaces/libpq (fe-connect.c)
Date: Monday, December 18, 2000 @ 12:33:42
Author: tgl
Update of /home/projects/pgsql/cvsroot/pgsql/src/interfaces/libpq
from hub.org:/home/projects/pgsql/tmp/cvs-serv46276/src/interfaces/libpq
Modified Files:
fe-connect.c
----------------------------- Log Message -----------------------------
Ensure that 'errno' is saved and restored by all signal handlers that
might change it. Experimentation shows that the signal handler call
mechanism does not save/restore errno for you, at least not on Linux
or HPUX, so this is definitely a real risk.
* tgl@postgresql.org <tgl@postgresql.org> [001218 09:34] wrote:
Date: Monday, December 18, 2000 @ 12:33:42
Author: tglUpdate of /home/projects/pgsql/cvsroot/pgsql/src/interfaces/libpq
from hub.org:/home/projects/pgsql/tmp/cvs-serv46276/src/interfaces/libpqModified Files:
fe-connect.c----------------------------- Log Message -----------------------------
Ensure that 'errno' is saved and restored by all signal handlers that
might change it. Experimentation shows that the signal handler call
mechanism does not save/restore errno for you, at least not on Linux
or HPUX, so this is definitely a real risk.
I'm not sure why you're doing this, if someone calls PQrequestCancel,
they shouldn't expect it to preserve errno.
Afaik you're not responcible for saving/restoring errno on all
entries to a userland library, users should know to check beforehand.
--
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."
Alfred Perlstein <bright@wintelcom.net> writes:
Ensure that 'errno' is saved and restored by all signal handlers that
might change it.
I'm not sure why you're doing this, if someone calls PQrequestCancel,
they shouldn't expect it to preserve errno.
PQrequestCancel is designed and documented to be callable from user
signal handlers, so it seems like good defensive programming to make
it save/restore errno.
regards, tom lane