Re: Nameless IPC on POSIX systems - Mailing list pgsql-patches

From Tom Lane
Subject Re: Nameless IPC on POSIX systems
Date
Msg-id 18575.1115412636@sss.pgh.pa.us
Whole thread Raw
In response to Re: Nameless IPC on POSIX systems  (des@des.no (Dag-Erling Smørgrav))
List pgsql-patches
des@des.no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=) writes:
> Tom Lane <tgl@sss.pgh.pa.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

pgsql-patches by date:

Previous
From: des@des.no (Dag-Erling Smørgrav)
Date:
Subject: Re: Nameless IPC on POSIX systems
Next
From: Heikki Linnakangas
Date:
Subject: Re: Cleaning up unreferenced table files