From: | "Cyril VELTER" <cyril(dot)velter(at)libertysurf(dot)fr> |
---|---|
To: | "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | "PostgreSQL-development" <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Native Windows, Apache Portable Runtime |
Date: | 2002-05-06 17:51:58 |
Message-ID: | 011a01c1f526$bafade50$6901a8c0@cvfixe |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> Well, SharedMemoryIsInUse is *not* just about ensuring that the shared
> memory gets reaped. The point is to ensure that you can't start a new
> postmaster until the last old backend is gone. (Consider situations
> where the parent postmaster process crashes, or perhaps is kill -9'd
> by a careless DBA, but there are still active backends. We want to
> detect that situation and ensure that a new postmaster will refuse to
> start.)
Yes I remember that now (the current code do that correctly).
>
> >> How so? If those calls were needed before, why won't all three still
> >> be needed?
>
> > In the current hack, I've to iterate over all sharedmem segments
(system
> > wide) to find the original one by name. There is a race condition here
if
> > several backend are starting at the same time.
beos_before_backend_startup
> > beos_backend_startup_failed acquire / release a semaphore which prevent
> > several fork at the same time.
>
> Does keeping the shmem segment name around solve that? Seems like you
> don't need a PGShmemHeader field for that; just store it in a static
> variable.
No the name is not enough, I need the beos handle for each shared mem
segment. I'll try to find a cleaner solution using existing API.
cyril
From | Date | Subject | |
---|---|---|---|
Next Message | Ryan Bradetich | 2002-05-06 17:52:00 | a couple of minor itches: RI Trigger Names, and additional Alter ownerships commands. |
Previous Message | Joe Conway | 2002-05-06 16:51:15 | Set Returning Functions (SRF) - request for patch review and comment |