Re: How to check for pending CancelRequest from C/C++ function - Mailing list pgsql-general

From Stephen Woodbridge
Subject Re: How to check for pending CancelRequest from C/C++ function
Date
Msg-id 52CADC12.2080204@swoodbridge.com
Whole thread Raw
In response to Re: How to check for pending CancelRequest from C/C++ function  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: How to check for pending CancelRequest from C/C++ function
List pgsql-general
On 1/6/2014 10:32 AM, Tom Lane wrote:
> Stephen Woodbridge <woodbri@swoodbridge.com> writes:
>> I writing some functions for postgresql extension in C/C++ and I would
>> like to be able to check for a pending CancelRequest from the frontend
>> so I can take appropriate action to honor this request.
>
> Put "CHECK_FOR_INTERRUPTS();" in some suitably safe place.

Thanks! Looking at this macro its doing

if (InterruptPending)
     ProcessInterrupts();

Am I correct in assuming that ProcessInterrupts() may not return?

So if I need to clean up then I should check do something like:

if (InterruptPending) {
     /* cleanup here */
     ProcessInterrupts();
}

Similarly if I'm in C++ code I can probably include miscadmin.h as an
extern C to get access to this.

Thanks again,
   -Steve


pgsql-general by date:

Previous
From: Keith Fiske
Date:
Subject: Re: Planning error in dynamic string creation in plpgsql
Next
From: Martijn van Oosterhout
Date:
Subject: Re: WAL archive cleanup om master