On Sun, Jan 5, 2014 at 11:04 PM, james <james@mansionfamily.plus.com> wrote:
> On 05/01/2014 16:50, Robert Haas wrote:
>
> But on Windows, segments are *automatically*
> destroyed *by the operating system* when the last process unmaps them,
> so it's not quite so clear to me how we can allow it there. The main
> shared memory segment is no problem because the postmaster always has
> it mapped, even if no one else does, but that doesn't help for dynamic
> shared memory segments.
>
> Surely you just need to DuplicateHandle into the parent process?
Ideally DuplicateHandle should work, but while going through Windows internals of shared memory functions on below
link,I observed that they mentioned it that it will work for child proceess.
http://msdn.microsoft.com/en-us/library/ms810613.aspx Refer section "Inheriting and duplicating memory-mapped file
object handles"
> If you
> want to (tidily) dispose of it at some time, then you'll need to tell the
> postmaster that you have done so and what the handle is in its process,
> but if you just want it to stick around, then you can just pass it up.
Duplicate handle should work, but we need to communicate the handle
to other process using IPC.
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com