Re: Nameless IPC on POSIX systems

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

In response to

Browse pgsql-patches by date

  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