summaryrefslogtreecommitdiff
path: root/src/transports/smart_protocol.c
diff options
context:
space:
mode:
authorPeter Pettersson <boretrk@hotmail.com>2021-07-15 21:00:02 +0200
committerPeter Pettersson <boretrk@hotmail.com>2021-07-15 21:00:02 +0200
commite4e173e8744dbdf9bed4b814f1af6a8080c4c603 (patch)
treeea41de624aae1e2289813c442bd7cc6508174ebf /src/transports/smart_protocol.c
parentf15a6792d382f7a9bf6d5c638417f2b436a144a9 (diff)
downloadlibgit2-e4e173e8744dbdf9bed4b814f1af6a8080c4c603.tar.gz
Allow compilation on systems without CLOCK_MONOTONIC
Makes usage of CLOCK_MONOTONIC conditional and makes functions that uses git__timer handle clock resynchronization. Call gettimeofday with tzp set to NULL as required by https://pubs.opengroup.org/onlinepubs/9699919799/functions/gettimeofday.html
Diffstat (limited to 'src/transports/smart_protocol.c')
-rw-r--r--src/transports/smart_protocol.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/transports/smart_protocol.c b/src/transports/smart_protocol.c
index 9482915d8..91de163e9 100644
--- a/src/transports/smart_protocol.c
+++ b/src/transports/smart_protocol.c
@@ -975,9 +975,10 @@ static int stream_thunk(void *buf, size_t size, void *data)
if (payload->cb) {
double current_time = git__timer();
+ double elapsed = current_time - payload->last_progress_report_time;
payload->last_bytes += size;
- if ((current_time - payload->last_progress_report_time) >= MIN_PROGRESS_UPDATE_INTERVAL) {
+ if (elapsed < 0 || elapsed >= MIN_PROGRESS_UPDATE_INTERVAL) {
payload->last_progress_report_time = current_time;
error = payload->cb(payload->pb->nr_written, payload->pb->nr_objects, payload->last_bytes, payload->cb_payload);
}