Hi, On 2017-10-05 17:02:22 -0500, Nico Williams wrote: > A quick look at the functions called on the child side of fork() > makes me think that it's unlikely that the children here use > async-signal-safe functions only.
That's not a requirement unless you're using fork *and* threads. At least by my last reading of posix and common practice. > - fork() is used in a number of places where execl() or execv() are > called immediately after (and exit() if the exec fails). > > It would be better to use vfork() where available and _exit() instead > of exit(). vfork is less portable, and doesn't really win us anything on common platforms. On most it's pretty much the same implementation. > vfork() is widely demonized, but it's actually quite superior > (performance-wise) to fork() when all you want to do is exec-or-exit > since no page copying (COW or otherwise) needs be done when using > vfork(). Not on linux, at least not as of a year or two back. I do think it'd be good to move more towards threads, but not at all for the reasons mentioned here. Greetings, Andres Freund -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers