Merge "init condition with attr CLOCK_MONOTONIC"

This commit is contained in:
Linux Build Service Account 2018-01-15 23:28:29 -08:00 committed by Gerrit - the friendly Code Review server
commit 438abebca0
4 changed files with 25 additions and 15 deletions

View file

@ -81,6 +81,13 @@ GnssAdapter::GnssAdapter() :
LOC_LOGD("%s]: Constructor %p", __func__, this); LOC_LOGD("%s]: Constructor %p", __func__, this);
mUlpPositionMode.mode = LOC_POSITION_MODE_INVALID; mUlpPositionMode.mode = LOC_POSITION_MODE_INVALID;
pthread_condattr_t condAttr;
pthread_condattr_init(&condAttr);
pthread_condattr_setclock(&condAttr, CLOCK_MONOTONIC);
pthread_cond_init(&mNiData.session.tCond, &condAttr);
pthread_cond_init(&mNiData.sessionEs.tCond, &condAttr);
pthread_condattr_destroy(&condAttr);
/* Set ATL open/close callbacks */ /* Set ATL open/close callbacks */
AgpsAtlOpenStatusCb atlOpenStatusCb = AgpsAtlOpenStatusCb atlOpenStatusCb =
[this](int handle, int isSuccess, char* apn, [this](int handle, int isSuccess, char* apn,
@ -2274,9 +2281,9 @@ GnssAdapter::reportNmea(const char* nmea, size_t length)
GnssNmeaNotification nmeaNotification = {}; GnssNmeaNotification nmeaNotification = {};
nmeaNotification.size = sizeof(GnssNmeaNotification); nmeaNotification.size = sizeof(GnssNmeaNotification);
struct timespec tv; struct timeval tv;
clock_gettime(CLOCK_MONOTONIC, &tv); gettimeofday(&tv, (struct timezone *) NULL);
int64_t now = tv.tv_sec * 1000LL + tv.tv_nsec / 1000000LL; int64_t now = tv.tv_sec * 1000LL + tv.tv_usec / 1000;
nmeaNotification.timestamp = now; nmeaNotification.timestamp = now;
nmeaNotification.nmea = nmea; nmeaNotification.nmea = nmea;
nmeaNotification.length = length; nmeaNotification.length = length;

View file

@ -165,15 +165,15 @@ RETURN VALUE
===========================================================================*/ ===========================================================================*/
char *loc_get_time(char *time_string, size_t buf_size) char *loc_get_time(char *time_string, size_t buf_size)
{ {
struct timespec now; /* sec and usec */ struct timeval now; /* sec and usec */
struct tm now_tm; /* broken-down time */ struct tm now_tm; /* broken-down time */
char hms_string[80]; /* HH:MM:SS */ char hms_string[80]; /* HH:MM:SS */
clock_gettime(CLOCK_MONOTONIC, &now); gettimeofday(&now, NULL);
localtime_r(&now.tv_sec, &now_tm); localtime_r(&now.tv_sec, &now_tm);
strftime(hms_string, sizeof hms_string, "%H:%M:%S", &now_tm); strftime(hms_string, sizeof hms_string, "%H:%M:%S", &now_tm);
snprintf(time_string, buf_size, "%s.%03d", hms_string, (int) (now.tv_nsec / 1000000LL)); snprintf(time_string, buf_size, "%s.%03d", hms_string, (int) (now.tv_usec / 1000));
return time_string; return time_string;
} }
@ -224,13 +224,14 @@ SIDE EFFECTS
===========================================================================*/ ===========================================================================*/
char * get_timestamp(char *str, unsigned long buf_size) char * get_timestamp(char *str, unsigned long buf_size)
{ {
struct timespec tv; struct timeval tv;
struct timezone tz;
int hh, mm, ss; int hh, mm, ss;
clock_gettime(CLOCK_MONOTONIC, &tv); gettimeofday(&tv, &tz);
hh = tv.tv_sec/3600%24; hh = tv.tv_sec/3600%24;
mm = (tv.tv_sec%3600)/60; mm = (tv.tv_sec%3600)/60;
ss = tv.tv_sec%60; ss = tv.tv_sec%60;
snprintf(str, buf_size, "%02d:%02d:%02d.%06ld", hh, mm, ss, tv.tv_nsec / 1000); snprintf(str, buf_size, "%02d:%02d:%02d.%06ld", hh, mm, ss, tv.tv_usec);
return str; return str;
} }

View file

@ -52,13 +52,14 @@ extern "C" {
// LE targets with no logcat support // LE targets with no logcat support
#define TS_PRINTF(format, x...) \ #define TS_PRINTF(format, x...) \
{ \ { \
struct timespec tv; \ struct timeval tv; \
struct timezone tz; \
int hh, mm, ss; \ int hh, mm, ss; \
clock_gettime(CLOCK_MONOTONIC, &tv); \ gettimeofday(&tv, &tz); \
hh = tv.tv_sec/3600%24; \ hh = tv.tv_sec/3600%24; \
mm = (tv.tv_sec%3600)/60; \ mm = (tv.tv_sec%3600)/60; \
ss = tv.tv_sec%60; \ ss = tv.tv_sec%60; \
fprintf(stdout,"%02d:%02d:%02d.%06ld]" format "\n", hh, mm, ss, tv.tv_nsec/1000, ##x); \ fprintf(stdout,"%02d:%02d:%02d.%06ld]" format "\n", hh, mm, ss, tv.tv_usec, ##x); \
} }
#define ALOGE(format, x...) TS_PRINTF("E/%s (%d): " format , LOG_TAG, getpid(), ##x) #define ALOGE(format, x...) TS_PRINTF("E/%s (%d): " format , LOG_TAG, getpid(), ##x)

View file

@ -30,13 +30,14 @@
char * get_timestamp(char *str, unsigned long buf_size) char * get_timestamp(char *str, unsigned long buf_size)
{ {
struct timespec tv; struct timeval tv;
struct timezone tz;
int hh, mm, ss; int hh, mm, ss;
clock_gettime(CLOCK_MONOTONIC, &tv); gettimeofday(&tv, &tz);
hh = tv.tv_sec/3600%24; hh = tv.tv_sec/3600%24;
mm = (tv.tv_sec%3600)/60; mm = (tv.tv_sec%3600)/60;
ss = tv.tv_sec%60; ss = tv.tv_sec%60;
snprintf(str, buf_size, "%02d:%02d:%02d.%06ld", hh, mm, ss, tv.tv_nsec / 1000); snprintf(str, buf_size, "%02d:%02d:%02d.%06ld", hh, mm, ss, tv.tv_usec);
return str; return str;
} }