I would think that you would want to explicitly call time_init() from main or something. It probably doesn't matter as time_msec() will probably be called pretty quickly after startup. Just seems a bit more straightforward to me.
Looks good, Ethan On Fri, Jan 13, 2012 at 16:43, Ben Pfaff <b...@nicira.com> wrote: > An upcoming commit has a new use for the time at which OVS started up, so > this moves this functionality to a common location. > > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > lib/timeval.c | 20 +++++++++++++++----- > lib/timeval.h | 4 +++- > lib/vlog.c | 8 ++------ > 3 files changed, 20 insertions(+), 12 deletions(-) > > diff --git a/lib/timeval.c b/lib/timeval.c > index c8c02bd..8097ce8 100644 > --- a/lib/timeval.c > +++ b/lib/timeval.c > @@ -1,5 +1,5 @@ > /* > - * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. > + * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira Networks. > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. > @@ -51,6 +51,9 @@ static volatile sig_atomic_t monotonic_tick = true; > static struct timespec wall_time; > static struct timespec monotonic_time; > > +/* The monotonic time at which the time module was initialized. */ > +static long long int boot_time; > + > /* Fixed monotonic time offset, for use by unit tests. */ > static struct timespec warp_offset; > > @@ -71,10 +74,7 @@ static void refresh_rusage(void); > static void timespec_add(struct timespec *sum, > const struct timespec *a, const struct timespec *b); > > -/* Initializes the timetracking module. > - * > - * It is not necessary to call this function directly, because other time > - * functions will call it automatically, but it doesn't hurt. */ > +/* Initializes the timetracking module, if not already initialized. */ > static void > time_init(void) > { > @@ -95,6 +95,7 @@ time_init(void) > > set_up_signal(SA_RESTART); > set_up_timer(); > + boot_time = time_msec(); > } > > static void > @@ -402,6 +403,15 @@ timeval_to_msec(const struct timeval *tv) > return (long long int) tv->tv_sec * 1000 + tv->tv_usec / 1000; > } > > +/* Returns the monotonic time at which the "time" module was initialized, in > + * milliseconds(). */ > +long long int > +time_boot_msec(void) > +{ > + time_init(); > + return boot_time; > +} > + > void > xgettimeofday(struct timeval *tv) > { > diff --git a/lib/timeval.h b/lib/timeval.h > index e57f7ac..e9ff183 100644 > --- a/lib/timeval.h > +++ b/lib/timeval.h > @@ -1,5 +1,5 @@ > /* > - * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. > + * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira Networks. > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. > @@ -65,6 +65,8 @@ void xgettimeofday(struct timeval *); > > int get_cpu_usage(void); > > +long long int time_boot_msec(void); > + > #ifdef __cplusplus > } > #endif > diff --git a/lib/vlog.c b/lib/vlog.c > index 0d7f4d1..3a04f99 100644 > --- a/lib/vlog.c > +++ b/lib/vlog.c > @@ -1,5 +1,5 @@ > /* > - * Copyright (c) 2008, 2009, 2010, 2011 Nicira Networks. > + * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira Networks. > * > * Licensed under the Apache License, Version 2.0 (the "License"); > * you may not use this file except in compliance with the License. > @@ -82,9 +82,6 @@ static struct facility facilities[VLF_N_FACILITIES] = { > #undef VLOG_FACILITY > }; > > -/* Time at which vlog was initialized, in milliseconds. */ > -static long long int boot_time; > - > /* VLF_FILE configuration. */ > static char *log_file_name; > static FILE *log_file; > @@ -480,7 +477,6 @@ vlog_init(void) > > openlog(program_name, LOG_NDELAY, LOG_DAEMON); > > - boot_time = time_msec(); > now = time_wall(); > if (now < 0) { > struct tm tm; > @@ -635,7 +631,7 @@ format_log_message(const struct vlog_module *module, enum > vlog_level level, > ds_put_format(s, "%ld", (long int) getpid()); > break; > case 'r': > - ds_put_format(s, "%lld", time_msec() - boot_time); > + ds_put_format(s, "%lld", time_msec() - time_boot_msec()); > break; > default: > ds_put_char(s, p[-1]); > -- > 1.7.2.5 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev