Skip to content

Commit 9c3d299

Browse files
committed
[Issue #169] check for interrupt more frequently during restore
1 parent ee36dd9 commit 9c3d299

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/data.c

+8-4
Original file line numberDiff line numberDiff line change
@@ -983,10 +983,6 @@ restore_data_file_new(parray *parent_chain, pgFile *dest_file, FILE *out, const
983983

984984
pgBackup *backup = (pgBackup *) parray_get(parent_chain, i);
985985

986-
/* check for interrupt */
987-
if (interrupted || thread_interrupted)
988-
elog(ERROR, "Interrupted during restore");
989-
990986
/* lookup file in intermediate backup */
991987
res_file = parray_bsearch(backup->files, dest_file, pgFileCompareRelPathWithExternal);
992988
tmp_file = (res_file) ? *res_file : NULL;
@@ -1050,6 +1046,10 @@ restore_data_file_internal(FILE *in, FILE *out, pgFile *file, uint32 backup_vers
10501046
DataPage page;
10511047
int32 uncompressed_size = 0;
10521048

1049+
/* check for interrupt */
1050+
if (interrupted || thread_interrupted)
1051+
elog(ERROR, "Interrupted during data file restore");
1052+
10531053
/* read BackupPageHeader */
10541054
read_len = fread(&header, 1, sizeof(header), in);
10551055

@@ -1207,6 +1207,10 @@ restore_non_data_file_internal(FILE *in, FILE *out, pgFile *file,
12071207
{
12081208
read_len = 0;
12091209

1210+
/* check for interrupt */
1211+
if (interrupted || thread_interrupted)
1212+
elog(ERROR, "Interrupted during non-data file restore");
1213+
12101214
if ((read_len = fio_fread(in, buf, sizeof(buf))) != sizeof(buf))
12111215
break;
12121216

0 commit comments

Comments
 (0)