33 #include "XrdSys/XrdWin32.hh"
47 gettimeofday(&LastReport, 0);
48 LastReport.tv_sec = LastReport.tv_sec - tbeg.tv_sec;
49 LastReport.tv_usec = LastReport.tv_usec - tbeg.tv_usec;
50 if (LastReport.tv_usec < 0) {LastReport.tv_sec--; LastReport.tv_usec += 1000000;}
65 if (tnow == 0 || tnow == 1) {add_time = tnow; tnow = time(0);}
67 localtime_r((
const time_t *) &tnow, &midtime);
68 if (add_time) {midtime.tm_hour = 23; midtime.tm_min = midtime.tm_sec = 59;}
69 else midtime.tm_hour = midtime.tm_min = midtime.tm_sec = 0;
70 return mktime(&midtime) + add_time;
77 unsigned long XrdSysTimer::Report()
79 unsigned long current_time;
83 gettimeofday(&LastReport, 0);
84 current_time = (
unsigned long)LastReport.tv_sec;
88 LastReport.tv_sec = LastReport.tv_sec - StopWatch.tv_sec;
89 LastReport.tv_usec = LastReport.tv_usec - StopWatch.tv_usec;
90 if (LastReport.tv_usec < 0)
91 {LastReport.tv_sec--; LastReport.tv_usec += 1000000;}
102 unsigned long report_time =
Report();
106 Total_Time +=
static_cast<double>(LastReport.tv_sec) +
107 static_cast<double>(LastReport.tv_usec/1000)/1000.0;
118 unsigned long report_time =
Report();
122 Total_Time += (
unsigned long)LastReport.tv_sec*1000 +
123 (
unsigned long)(LastReport.tv_usec/1000);
134 unsigned long report_time =
Report();
138 Total_Time += (
unsigned long long)LastReport.tv_sec*1000 +
139 (
unsigned long long)(LastReport.tv_usec/1000);
150 unsigned long report_time =
Report();
154 Total_Time.tv_sec += LastReport.tv_sec;
155 Total_Time.tv_usec += LastReport.tv_usec;
156 if (Total_Time.tv_usec > 1000000) {Total_Time.tv_sec++;
157 Total_Time.tv_usec -= 1000000;}
171 struct timespec naptime, waketime;
175 naptime.tv_sec = sec;
180 while(nanosleep(&naptime, &waketime) && EINTR == errno)
181 {naptime.tv_sec = waketime.tv_sec;
182 naptime.tv_nsec = waketime.tv_nsec;
199 minutes = minutes%60;
201 snprintf(buff, blen-1,
"%d:%02d:%02d", hours, minutes, sec);
212 time_t currTime = time(0);
213 time_t currTimeGMT = 0;
216 gmtime_r( &currTime, &ptm );
217 currTimeGMT = mktime( &ptm );
219 currTimeGMT /= 60*60;
220 return currTime - currTimeGMT;
230 struct timespec naptime, waketime;
234 naptime.tv_sec = mills/1000;
235 naptime.tv_nsec = (mills%1000)*1000000;
239 while(nanosleep(&naptime, &waketime) && EINTR == errno)
240 {naptime.tv_sec = waketime.tv_sec;
241 naptime.tv_nsec = waketime.tv_nsec;
258 timespec Midnite = {
Midnight(1), 0};
259 while(clock_nanosleep(CLOCK_REALTIME,TIMER_ABSTIME,&Midnite,0) == EINTR) {}
261 timespec tleft, Midnite = {
Midnight(1) - time(0), 0};
263 do{
while(nanosleep(&Midnite, &tleft) && EINTR == errno)
264 {Midnite.tv_sec = tleft.tv_sec;
265 Midnite.tv_nsec = tleft.tv_nsec;
267 if (
Midnight(1) - time(0) >= 60)
break;
static void Wait4Midnight()
static char * s2hms(int sec, char *buff, int blen)
static time_t Midnight(time_t tnow=0)
struct timeval * Delta_Time(struct timeval &tbeg)
static void Snooze(int seconds)
unsigned long Report(double &)
static void Wait(int milliseconds)