X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=inline;f=src%2Fmisc.cpp;h=2f99668d4457941b3d9ca0e2b5d0fba56890563a;hb=20d6a8e57f55e586f5ab8b3bcb60bfe17c5f2708;hp=b3cd10a0e91e8f6987fb843d61057db6a13bd140;hpb=79fa72f392343fb93c16c133dedc3dbdf795e746;p=stockfish
diff --git a/src/misc.cpp b/src/misc.cpp
index b3cd10a0..2f99668d 100644
--- a/src/misc.cpp
+++ b/src/misc.cpp
@@ -1,7 +1,7 @@
/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
- Copyright (C) 2008-2014 Marco Costalba, Joona Kiiski, Tord Romstad
+ Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -17,6 +17,7 @@
along with this program. If not, see .
*/
+#include
#include
#include
#include
@@ -26,6 +27,7 @@
#include "thread.h"
using namespace std;
+using namespace std::chrono;
namespace {
@@ -123,6 +125,13 @@ const string engine_info(bool to_uci) {
}
+/// Convert system time to milliseconds. That's all we need.
+
+Time::point Time::now() {
+ return duration_cast(steady_clock::now().time_since_epoch()).count();
+}
+
+
/// Debug functions used mainly to collect run-time statistics
void dbg_hit_on(bool b) { ++hits[0]; if (b) ++hits[1]; }
@@ -146,7 +155,7 @@ void dbg_print() {
std::ostream& operator<<(std::ostream& os, SyncCout sc) {
- static Mutex m;
+ static std::mutex m;
if (sc == IO_LOCK)
m.lock();
@@ -162,25 +171,6 @@ std::ostream& operator<<(std::ostream& os, SyncCout sc) {
void start_logger(bool b) { Logger::start(b); }
-/// timed_wait() waits for msec milliseconds. It is mainly a helper to wrap
-/// the conversion from milliseconds to struct timespec, as used by pthreads.
-
-void timed_wait(WaitCondition& sleepCond, Lock& sleepLock, int msec) {
-
-#ifdef _WIN32
- int tm = msec;
-#else
- timespec ts, *tm = &ts;
- uint64_t ms = Time::now() + msec;
-
- ts.tv_sec = ms / 1000;
- ts.tv_nsec = (ms % 1000) * 1000000LL;
-#endif
-
- cond_timedwait(sleepCond, sleepLock, tm);
-}
-
-
/// prefetch() preloads the given address in L1/L2 cache. This is a non-blocking
/// function that doesn't stall the CPU waiting for data to be loaded from memory,
/// which can be quite slow.