nonblocking lock?

From: Pablo Funes <pablo(at)cs(dot)brandeis(dot)edu>
To: pgsql-hackers(at)postgresql(dot)org
Subject: nonblocking lock?
Date: 1999-05-27 22:42:11
Message-ID: 199905272242.SAA20808@mancha.cs.brandeis.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Is it possible to do a nonblocking lock? That is,
I want several clients to execute,

begin
if table A is locked
then
go around doing stuff on other tables
else
lock A and do stuff on A
endif

the problem is, if I use normal lock, then
after one client has locked and is doing stuff on A
the other one will block and thus it won't be able
to go around doing stuff on other tables. Is it
possible to do a nonblocking lock that will just
fail if the table is locked already?

NOTE: I tried using PQrequestCancel but it won't
cancel the request. It still blocks for as long
as the lock lasts. The only way around I've found so
far is to use PQreset. That's crude but works. But
it leaves a dangling postmaster process that lives
until the orignal lock is freed. Any other ideas?

Thanks a lot

Pablo Funes
Brandeis University
pablo(at)cs(dot)brandeis(dot)edu

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tatsuo Ishii 1999-05-28 02:38:46 Re: [HACKERS] Problems w/ LO
Previous Message Nat Howard 1999-05-27 22:34:50 refint (& others?) on current snapshot