Thread: Cannot cancel LOCK TABLE

Cannot cancel LOCK TABLE

From
Leon
Date:
Hi!

There we have a need of canceling LOCK TABLE requests
which fail to lock the table in a given time. Scenario is following:
try to issue a lock on a table, wait for a given time for a completion
ot this lock request, and, if it fails, cancel a lock request and go on
processing other queries. A little experimenting showed that LOCK TABLE
requests cannot be canceled. They just sit in the queue of queries
and don't let other queries to be processed. How can I overcome
that? The piece of code where I try to cancel lock request:

     if (difftime(t1,t0) > LOCK_WAIT_TIMEOUT)
     {
      printf("\nTimeout waiting for lock. Try again.\n");
      PQrequestCancel(conn);
      PQsendQuery(conn,"rollback");
      return 1;
     }

--
Leon.
---------
"This may seem a bit weird, but that's okay, because it is weird." -
Perl manpage.