COIN-OR::LEMON - Graph Library

Changeset 2027:119db4e6ab2c in lemon-0.x


Ignore:
Timestamp:
03/31/06 14:12:06 (18 years ago)
Author:
Balazs Dezso
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@2666
Message:

MinGW compatibility fix

File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/time_measure.h

    r1960 r2027  
    2424///\brief Tools for measuring cpu usage
    2525
     26
     27#ifdef WIN32
     28
     29#include <windows.h>
     30#include <time.h>
     31#include "dos.h"
     32
     33int gettimeofday(struct timeval * tp, struct timezone *) {
     34  SYSTEMTIME      systime;
     35
     36  if (tp) {
     37
     38    struct tm tmrec;
     39    time_t theTime = time(NULL);
     40
     41    tmrec = *localtime(&theTime);
     42    tp->tv_sec = mktime(&tmrec);
     43    GetLocalTime(&systime); /* system time */
     44
     45    tp->tv_usec = systime.wMilliseconds * 1000;
     46
     47  }
     48
     49  return 0;
     50
     51}
     52
     53struct tms {
     54  long  tms_utime;
     55  long  tms_stime;
     56  long  tms_cutime;
     57  long  tms_cstime;
     58};
     59
     60static long filetime_to_clock(FILETIME *ft)
     61{
     62  __int64 qw = ft->dwHighDateTime;
     63  qw <<= 32;
     64  qw |= ft->dwLowDateTime;
     65  qw /= 10000;  /* File time ticks at 0.1uS, clock at 1mS */
     66  return (long) qw;
     67
     68}
     69
     70int times(struct tms *tmbuf)
     71{
     72  FILETIME create, exit, kernel, user;
     73  if (GetProcessTimes(GetCurrentProcess(),&create, &exit, &kernel, &user)) {
     74    tmbuf->tms_utime = filetime_to_clock(&user);
     75    tmbuf->tms_stime = filetime_to_clock(&kernel);
     76    tmbuf->tms_cutime = 0;
     77    tmbuf->tms_cstime = 0;
     78  }
     79  else {
     80    tmbuf->tms_utime = clock();
     81    tmbuf->tms_stime = 0;
     82    tmbuf->tms_cutime = 0;
     83    tmbuf->tms_cstime = 0;
     84  }
     85  return 0;
     86}
     87
     88#define _SC_CLK_TCK 1
     89
     90int sysconf(int)
     91{
     92  return 1;
     93}
     94
     95#else
     96#include <sys/times.h>
     97#endif
     98
    2699#include <sys/time.h>
    27 #include <sys/times.h>
    28100#include <fstream>
    29101#include <iostream>
     
    511583  template<class F>
    512584  TimeStamp runningTimeTest(F f,double min_time=10,int *num = NULL,
    513                         TimeStamp *full_time=NULL)
     585                            TimeStamp *full_time=NULL)
    514586  {
    515587    Timer t;
Note: See TracChangeset for help on using the changeset viewer.