Skip to content

Commit 818b58d

Browse files
handle interrupted sleep
1 parent c9787ab commit 818b58d

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

http.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2339,11 +2339,16 @@ static int update_url_from_redirect(struct strbuf *base,
23392339
static void sleep_for_retry(long retry_after)
23402340
{
23412341
if (retry_after > 0) {
2342+
unsigned int remaining;
23422343
warning(_("rate limited, waiting %ld seconds before retry"), retry_after);
23432344
trace2_region_enter("http", "retry-sleep", the_repository);
23442345
trace2_data_intmax("http", the_repository, "http/retry-sleep-seconds",
23452346
retry_after);
2346-
sleep(retry_after);
2347+
remaining = sleep(retry_after);
2348+
while (remaining > 0) {
2349+
/* Sleep was interrupted, continue sleeping */
2350+
remaining = sleep(remaining);
2351+
}
23472352
trace2_region_leave("http", "retry-sleep", the_repository);
23482353
}
23492354
}

0 commit comments

Comments
 (0)