From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | des(at)des(dot)no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=) |
Cc: | pgsql-patches(at)postgresql(dot)org |
Subject: | Re: Nameless IPC on POSIX systems |
Date: | 2005-05-06 20:50:36 |
Message-ID: | 18575.1115412636@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-patches |
des(at)des(dot)no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=) writes:
> Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
>> The check we need is "are there any other processes (still) attached to
>> this shmem" and AFAIK that is not available in the mmap API. Do you
>> know how to get it?
> You can hack something up with fcntl() locks. If a process has a
> shared lock on the shm file, F_GETLK will get you its pid. Then grab
> your own shared lock.
Seems fairly race-condition-prone: what about recently spawned child
processes that haven't yet taken their own locks? If I read the fork()
page correctly, a forked child doesn't inherit any file locks.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2005-05-06 21:37:58 | Re: Cleaning up unreferenced table files |
Previous Message | =?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?= | 2005-05-06 20:38:11 | Re: Nameless IPC on POSIX systems |