%PDF- %PDF-
Direktori : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/base/platform/ |
Current File : /home/vacivi36/vittasync.vacivitta.com.br/vittasync/node/deps/v8/src/base/platform/platform-win32.h |
// Copyright 2023 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_BASE_PLATFORM_PLATFORM_WIN32_H_ #define V8_BASE_PLATFORM_PLATFORM_WIN32_H_ #include "src/base/platform/time.h" namespace v8 { namespace base { // A timer which allows more precise sleep intervals. Sleeping on Windows is // generally limited by the granularity of the system timer (64 Hz by default), // but on Windows 10 version 1803 and newer, this class allows much shorter // sleeps including sub-millisecond intervals. class V8_BASE_EXPORT PreciseSleepTimer { public: PreciseSleepTimer(); ~PreciseSleepTimer(); // Moving is supported but copying is not, because this class owns a // platform handle. PreciseSleepTimer(const PreciseSleepTimer& other) = delete; PreciseSleepTimer& operator=(const PreciseSleepTimer& other) = delete; PreciseSleepTimer(PreciseSleepTimer&& other) V8_NOEXCEPT; PreciseSleepTimer& operator=(PreciseSleepTimer&& other) V8_NOEXCEPT; // Attempts to initialize this timer. Precise timers are only available on // Windows 10 version 1803 and later. To check whether initialization worked, // use IsInitialized. void TryInit(); bool IsInitialized() const; // Sleeps for a specified time interval. This function requires that the timer // has been initialized, as can be checked with IsInitialized. A single // PreciseSleepTimer instance must not be used simultaneously on multiple // threads. void Sleep(TimeDelta interval) const; private: void Close(); HANDLE timer_; }; } // namespace base } // namespace v8 #endif // V8_BASE_PLATFORM_PLATFORM_WIN32_H_