2
* Copyright (C) 2007-2008 Anael Orlinski
4
* This file is part of Panomatic.
6
* Panomatic is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* Panomatic is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with Panomatic; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25
#include <vigra/windows.h>
28
//#include <pthread.h>
32
#include <zthread/Condition.h>
33
#include <zthread/FastMutex.h>
34
#include <zthread/Guard.h>
38
#define TIMETRACE(TEXT, CODE) { utils::os_TIME t1,t2; utils::os_GetTime(&t1); CODE; \
39
utils::os_GetTime(&t2); std::cout << TEXT << " took " << utils::os_TimeDiff(&t2,&t1)/1000.0 << " seconds." << std::endl; }
50
typedef DWORD os_TIME;
52
typedef struct timeval os_TIME;
55
inline void os_GetTime(os_TIME *time) {
57
*time = GetTickCount();
60
gettimeofday(time, &tz);
64
inline int os_TimeDiff(os_TIME *time1, os_TIME *time2)
67
return *time1 - *time2;
69
return (int)((double)time1->tv_sec*1000 + ((double)time1->tv_usec)*1e-3 -
70
(double)time2->tv_sec*1000 - ((double)time2->tv_usec)*1e-3);