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