On 2018-07-19 15:42:46 -0500, Nico Williams wrote: > On Thu, Jul 19, 2018 at 01:38:52PM -0700, Andres Freund wrote: > > On 2018-07-19 15:27:06 -0500, Nico Williams wrote: > > > No, the other thread does NOT continue to do whatever -- it > > > blocks/sleeps forever waiting for the coming exit(3). > > > > > > I.e., quickdie() would look like this: > > > > > > [...] > > > > > > and the thread would basically do: > > > > > > [...] > > > > > > This use of threads does not require any changes to the rest of the > > > codebase. > > > > Uhm, this'd already require a fair bit of threadsafety. Like at least > > all of the memory allocator / context code. Nor is having threads > > around unproblematic for subprocesses that are forked off. Nor does > > this account for the portability work. > > Yes, but that's in libc. None of that is in the PG code itself.
That's simply entirely completely wrong. PG has a good chunk of memory management layers (facilitating memory contexts) ontop of malloc. And that's stateful. Greetings, Andres Freund