You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hawq.apache.org by yj...@apache.org on 2017/04/27 02:09:36 UTC
incubator-hawq git commit: HAWQ-1439. tolerate system time being
changed to earlier point when checking resource context timeout
Repository: incubator-hawq
Updated Branches:
refs/heads/master 97ace9cf8 -> e082d3adb
HAWQ-1439. tolerate system time being changed to earlier point when checking resource context timeout
Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/e082d3ad
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/e082d3ad
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/e082d3ad
Branch: refs/heads/master
Commit: e082d3adbb89a9e5ccb341da324ea9514cff5a35
Parents: 97ace9c
Author: Yi <yj...@pivotal.io>
Authored: Thu Apr 27 12:09:25 2017 +1000
Committer: Yi <yj...@pivotal.io>
Committed: Thu Apr 27 12:09:25 2017 +1000
----------------------------------------------------------------------
.../resourcemanager/utils/network_utils.c | 21 +++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/e082d3ad/src/backend/resourcemanager/utils/network_utils.c
----------------------------------------------------------------------
diff --git a/src/backend/resourcemanager/utils/network_utils.c b/src/backend/resourcemanager/utils/network_utils.c
index fbfe0a9..78a29cb 100644
--- a/src/backend/resourcemanager/utils/network_utils.c
+++ b/src/backend/resourcemanager/utils/network_utils.c
@@ -29,6 +29,7 @@
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
+#include "storage/ipc.h"
#include "dynrm.h"
/*
@@ -41,9 +42,23 @@ static void cleanupSocketConnectionPool(int code, Datum arg);
uint64_t gettime_microsec(void)
{
- static struct timeval t;
- gettimeofday(&t,NULL);
- return 1000000ULL * t.tv_sec + t.tv_usec;
+ struct timeval newTime;
+ int status = 1;
+ uint64_t t = 0;
+
+#if HAVE_LIBRT
+ struct timespec ts;
+ status = clock_gettime(CLOCK_MONOTONIC, &ts);
+ newTime.tv_sec = ts.tv_sec;
+ newTime.tv_usec = ts.tv_nsec / 1000;
+#endif
+
+ if (status != 0)
+ {
+ gettimeofday(&newTime, NULL);
+ }
+ t = ((uint64_t)newTime.tv_sec) * USECS_PER_SECOND + newTime.tv_usec;
+ return t;
}
int getHostIPV4AddressesByHostNameAsString(MCTYPE context,