mirror of
https://github.com/postgres/postgres.git
synced 2025-10-19 15:49:24 +03:00
Add CHECK_FOR_INTERRUPTS() in various strategic spots, per comments
from Hiroshi.
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.212 2001/11/05 17:46:25 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.213 2002/01/06 00:37:44 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -992,6 +992,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel,
|
||||
bool do_reap,
|
||||
do_frag;
|
||||
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
|
||||
buf = ReadBuffer(onerel, blkno);
|
||||
page = BufferGetPage(buf);
|
||||
|
||||
@@ -1415,6 +1417,8 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
|
||||
blkno > last_move_dest_block;
|
||||
blkno--)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
|
||||
/*
|
||||
* Forget fraged_pages pages at or after this one; they're no
|
||||
* longer useful as move targets, since we only want to move down.
|
||||
@@ -2127,6 +2131,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
|
||||
i < vacuumed_pages;
|
||||
i++, curpage++)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
Assert((*curpage)->blkno < blkno);
|
||||
if ((*curpage)->offsets_used == 0)
|
||||
{
|
||||
@@ -2157,6 +2162,7 @@ repair_frag(VRelStats *vacrelstats, Relation onerel,
|
||||
i < num_fraged_pages;
|
||||
i++, curpage++)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
Assert((*curpage)->blkno < blkno);
|
||||
if ((*curpage)->blkno > last_move_dest_block)
|
||||
break; /* no need to scan any further */
|
||||
@@ -2342,6 +2348,7 @@ vacuum_heap(VRelStats *vacrelstats, Relation onerel, VacPageList vacuum_pages)
|
||||
|
||||
for (i = 0, vacpage = vacuum_pages->pagedesc; i < nblocks; i++, vacpage++)
|
||||
{
|
||||
CHECK_FOR_INTERRUPTS();
|
||||
if ((*vacpage)->offsets_free > 0)
|
||||
{
|
||||
buf = ReadBuffer(onerel, (*vacpage)->blkno);
|
||||
|
Reference in New Issue
Block a user