Re: Win32 semaphore patch - Mailing list pgsql-patches

From Magnus Hagander
Subject Re: Win32 semaphore patch
Date
Msg-id 6BCB9D8A16AC4241919521715F4D8BCEA0F923@algol.sollentuna.se
Whole thread Raw
In response to Win32 semaphore patch  (Qingqing Zhou <zhouqq@cs.toronto.edu>)
Responses Re: Win32 semaphore patch  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-patches
> > For #2, yes, the semaphores will go away when the last
> process holding
> > a HANDLE to it goes away.
>
> Well, that raises an interesting point: exactly where in this
> code does ownership of the HANDLEs get propagated to the
> child processes?  As written, the HANDLEs seem to belong only
> to the postmaster --- will the kernel calls even work in the
> child processes?  According to what someone was telling me
> the other day, HANDLEs are process-local, so just storing
> them in shared memory doesn't seem like it should work.

They're inherited down. I haven't looked at the calling path, but if
they're all created in the postmaster *before* the backends are forked,
it's not a problem. The code specifically sets them to inheritable, and
if you do that you can use them in a child process.

//Magnus

pgsql-patches by date:

Previous
From: Tom Lane
Date:
Subject: Re: Win32 semaphore patch
Next
From: Tom Lane
Date:
Subject: Re: Win32 semaphore patch