diff --git a/src/backend/replication/basebackup.c b/src/backend/replication/basebackup.c index 22745b1afea..3c7a092ff21 100644 --- a/src/backend/replication/basebackup.c +++ b/src/backend/replication/basebackup.c @@ -1308,26 +1308,16 @@ throttle(size_t increment) WL_LATCH_SET | WL_TIMEOUT | WL_POSTMASTER_DEATH, (long) (sleep / 1000)); } - else - { - /* - * The actual transfer rate is below the limit. A negative value - * would distort the adjustment of throttled_last. - */ - wait_result = 0; - sleep = 0; - } /* - * Only a whole multiple of throttling_sample was processed. The rest will - * be done during the next call of this function. + * As we work with integers, only whole multiple of throttling_sample was + * processed. The rest will be done during the next call of this function. */ throttling_counter %= throttling_sample; - /* Once the (possible) sleep has ended, new period starts. */ - if (wait_result & WL_TIMEOUT) - throttled_last += elapsed + sleep; - else if (sleep > 0) - /* Sleep was necessary but might have been interrupted. */ - throttled_last = GetCurrentIntegerTimestamp(); + /* + * Time interval for the remaining amount and possible next increments + * starts now. + */ + throttled_last = GetCurrentIntegerTimestamp(); }