along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#if defined(_MSC_VER)
+#if defined(_WIN32) || defined(_WIN64)
-#define _CRT_SECURE_NO_DEPRECATE
#define NOMINMAX // disable macros min() and max()
#include <windows.h>
-#include <sys/timeb.h>
#else
-# include <sys/time.h>
-# include <sys/types.h>
# include <unistd.h>
# if defined(__hpux)
# include <sys/pstat.h>
s << "Stockfish " << Tag
<< setfill('0') << " " << year.substr(2)
<< setw(2) << (1 + months.find(month) / 4)
- << setw(2) << day << cpu64 << popcnt;
+ << setw(2) << day;
}
else
- s << "Stockfish " << Version << cpu64 << popcnt;
+ s << "Stockfish " << Version;
- s << (to_uci ? "\nid author ": " by ")
+ s << cpu64 << popcnt << (to_uci ? "\nid author ": " by ")
<< "Tord Romstad, Marco Costalba and Joona Kiiski";
return s.str();
}
-/// system_time() returns the current system time, measured in milliseconds
-
-int system_time() {
-
-#if defined(_MSC_VER)
- struct _timeb t;
- _ftime(&t);
- return int(t.time * 1000 + t.millitm);
-#else
- struct timeval t;
- gettimeofday(&t, NULL);
- return t.tv_sec * 1000 + t.tv_usec / 1000;
-#endif
-}
-
-
/// cpu_count() tries to detect the number of CPU cores
int cpu_count() {
-#if defined(_MSC_VER)
+#if defined(_WIN32) || defined(_WIN64)
SYSTEM_INFO s;
GetSystemInfo(&s);
return std::min(int(s.dwNumberOfProcessors), MAX_THREADS);
void timed_wait(WaitCondition& sleepCond, Lock& sleepLock, int msec) {
-#if defined(_MSC_VER)
+#if defined(_WIN32) || defined(_WIN64)
int tm = msec;
#else
- struct timeval t;
- struct timespec abstime, *tm = &abstime;
-
- gettimeofday(&t, NULL);
-
- abstime.tv_sec = t.tv_sec + (msec / 1000);
- abstime.tv_nsec = (t.tv_usec + (msec % 1000) * 1000) * 1000;
+ timespec ts, *tm = &ts;
+ uint64_t ms = Time::current_time().msec() + msec;
- if (abstime.tv_nsec > 1000000000LL)
- {
- abstime.tv_sec += 1;
- abstime.tv_nsec -= 1000000000LL;
- }
+ ts.tv_sec = ms / 1000;
+ ts.tv_nsec = (ms % 1000) * 1000000LL;
#endif
cond_timedwait(sleepCond, sleepLock, tm);