Re: fcntl(SETLK) [was Re: 2nd update on TOAST]

Поиск
Список
Период
Сортировка
От Alfred Perlstein
Тема Re: fcntl(SETLK) [was Re: 2nd update on TOAST]
Дата
Msg-id 20000708055138.D25571@fw.wintelcom.net
обсуждение исходный текст
Ответ на Re: fcntl(SETLK) [was Re: 2nd update on TOAST]  (JanWieck@t-online.de (Jan Wieck))
Список pgsql-hackers
* Jan Wieck <JanWieck@t-online.de> [000708 05:47] wrote:
> Tom Lane wrote:
> > 
> > Bruce and I were just talking by phone about this, and we realized that
> > there is a completely different approach to making that decision: if you
> > want to know whether there's an old postmaster connected to a socket
> > file, try to connect to the old postmaster!  In other words, pretend to
> > be a client and see if your connection attempt is answered.  (You don't
> > have to try to log in, just see if you get a connection.)  This might
> > also answer Peter's concern about socket files that belong to
> > non-Postgres programs, although I doubt that's really a big issue.
> > 
> > There are some potential pitfalls here, like what if the old postmaster
> > is there but overloaded?  But on the whole it seems like it might be
> > a cleaner answer than fooling around with lockfiles, and certainly safer
> > than relying on fcntl(SETLK) to work on a socket file.  Comments anyone?
> 
>     Like it.

my $pgsocket = "/tmp/.s.PGSQL.5432";

# try to connect to the postmaster
socket(SOCK, PF_UNIX, SOCK_STREAM, 0)       or die "unable to create unix domain socket: $!";

connect(SOCK, sockaddr_un($pgsocket))       and errexit("postmaster is running you must shut it down");

oh yeah... :)

-Alfred


В списке pgsql-hackers по дате отправления:

Предыдущее
От: JanWieck@t-online.de (Jan Wieck)
Дата:
Сообщение: Re: fcntl(SETLK) [was Re: 2nd update on TOAST]
Следующее
От: Mike Mascari
Дата:
Сообщение: Re: fcntl(SETLK) [was Re: 2nd update on TOAST]