| From: | Nathan Bossart <nathandbossart(at)gmail(dot)com> | 
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
| Cc: | Robert Haas <robertmhaas(at)gmail(dot)com>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>, pgsql-hackers(at)postgresql(dot)org | 
| Subject: | Re: pg_usleep for multisecond delays | 
| Date: | 2023-02-10 20:00:37 | 
| Message-ID: | 20230210200037.GA891016@nathanxps13 | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On Fri, Feb 10, 2023 at 10:51:20AM -0800, Nathan Bossart wrote:
> On Fri, Feb 10, 2023 at 10:18:34AM -0500, Tom Lane wrote:
>> Robert Haas <robertmhaas(at)gmail(dot)com> writes:
>>> I wonder if we should have a wrapper around WaitLatch() that documents
>>> that if the latch is set before the time expires, it will reset the
>>> latch and try again to wait for the remaining time, after checking for
>>> interrupts etc.
>> 
>> Resetting the latch seems not very friendly for general-purpose use
>> ... although I guess we could set it again on the way out.
>> 
>> BTW, we have an existing pg_sleep() function that deals with all
>> of this except re-setting the latch.
> 
> That seems workable.  I think it might also need to accept a function
> pointer for custom interrupt checking (e.g., archiver code should use
> HandlePgArchInterrupts()).  I'll put something together if that sounds
> alright.
Here is a work-in-progress patch.  I quickly scanned through my previous
patch and applied this new function everywhere it seemed safe to use (which
unfortunately is rather limited).
-- 
Nathan Bossart
Amazon Web Services: https://aws.amazon.com
| Attachment | Content-Type | Size | 
|---|---|---|
| pg_sleep.patch | text/x-diff | 4.8 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andres Freund | 2023-02-10 20:01:45 | Re: [PATCH] Compression dictionaries for JSONB | 
| Previous Message | Corey Huinker | 2023-02-10 19:08:35 | Re: appendBinaryStringInfo stuff |