| Index: runtime/vm/os_win.cc
|
| diff --git a/runtime/vm/os_win.cc b/runtime/vm/os_win.cc
|
| index e301627eeae78e0dbf95acb4f3a2639ad700887f..aa7e774713c480c8d5e710ceabcc9e882200ed99 100644
|
| --- a/runtime/vm/os_win.cc
|
| +++ b/runtime/vm/os_win.cc
|
| @@ -12,8 +12,8 @@
|
| #include <psapi.h> // NOLINT
|
| #include <time.h> // NOLINT
|
|
|
| -#include "platform/utils.h"
|
| #include "platform/assert.h"
|
| +#include "platform/utils.h"
|
| #include "vm/os_thread.h"
|
| #include "vm/zone.h"
|
|
|
| @@ -26,12 +26,10 @@ const char* OS::Name() {
|
| return "windows";
|
| }
|
|
|
| -
|
| intptr_t OS::ProcessId() {
|
| return static_cast<intptr_t>(GetCurrentProcessId());
|
| }
|
|
|
| -
|
| // As a side-effect sets the globals _timezone, _daylight and _tzname.
|
| static bool LocalTime(int64_t seconds_since_epoch, tm* tm_result) {
|
| time_t seconds = static_cast<time_t>(seconds_since_epoch);
|
| @@ -43,7 +41,6 @@ static bool LocalTime(int64_t seconds_since_epoch, tm* tm_result) {
|
| return error_code == 0;
|
| }
|
|
|
| -
|
| static int GetDaylightSavingBiasInSeconds() {
|
| TIME_ZONE_INFORMATION zone_information;
|
| memset(&zone_information, 0, sizeof(zone_information));
|
| @@ -55,7 +52,6 @@ static int GetDaylightSavingBiasInSeconds() {
|
| }
|
| }
|
|
|
| -
|
| const char* OS::GetTimeZoneName(int64_t seconds_since_epoch) {
|
| TIME_ZONE_INFORMATION zone_information;
|
| memset(&zone_information, 0, sizeof(zone_information));
|
| @@ -89,7 +85,6 @@ const char* OS::GetTimeZoneName(int64_t seconds_since_epoch) {
|
| return name;
|
| }
|
|
|
| -
|
| int OS::GetTimeZoneOffsetInSeconds(int64_t seconds_since_epoch) {
|
| tm decomposed;
|
| // LocalTime will set _timezone.
|
| @@ -111,7 +106,6 @@ int OS::GetTimeZoneOffsetInSeconds(int64_t seconds_since_epoch) {
|
| }
|
| }
|
|
|
| -
|
| int OS::GetLocalTimeZoneAdjustmentInSeconds() {
|
| // TODO(floitsch): avoid excessive calls to _tzset?
|
| _tzset();
|
| @@ -119,12 +113,10 @@ int OS::GetLocalTimeZoneAdjustmentInSeconds() {
|
| return static_cast<int>(-_timezone);
|
| }
|
|
|
| -
|
| int64_t OS::GetCurrentTimeMillis() {
|
| return GetCurrentTimeMicros() / 1000;
|
| }
|
|
|
| -
|
| int64_t OS::GetCurrentTimeMicros() {
|
| static const int64_t kTimeEpoc = 116444736000000000LL;
|
| static const int64_t kTimeScaler = 10; // 100 ns to us.
|
| @@ -144,10 +136,8 @@ int64_t OS::GetCurrentTimeMicros() {
|
| return (time.t_ - kTimeEpoc) / kTimeScaler;
|
| }
|
|
|
| -
|
| static int64_t qpc_ticks_per_second = 0;
|
|
|
| -
|
| int64_t OS::GetCurrentMonotonicTicks() {
|
| if (qpc_ticks_per_second == 0) {
|
| // QueryPerformanceCounter not supported, fallback.
|
| @@ -159,7 +149,6 @@ int64_t OS::GetCurrentMonotonicTicks() {
|
| return static_cast<int64_t>(now.QuadPart);
|
| }
|
|
|
| -
|
| int64_t OS::GetCurrentMonotonicFrequency() {
|
| if (qpc_ticks_per_second == 0) {
|
| // QueryPerformanceCounter not supported, fallback.
|
| @@ -168,7 +157,6 @@ int64_t OS::GetCurrentMonotonicFrequency() {
|
| return qpc_ticks_per_second;
|
| }
|
|
|
| -
|
| int64_t OS::GetCurrentMonotonicMicros() {
|
| int64_t ticks = GetCurrentMonotonicTicks();
|
| int64_t frequency = GetCurrentMonotonicFrequency();
|
| @@ -181,13 +169,11 @@ int64_t OS::GetCurrentMonotonicMicros() {
|
| return result;
|
| }
|
|
|
| -
|
| int64_t OS::GetCurrentThreadCPUMicros() {
|
| // TODO(johnmccutchan): Implement. See base/time_win.cc for details.
|
| return -1;
|
| }
|
|
|
| -
|
| intptr_t OS::ActivationFrameAlignment() {
|
| #if defined(TARGET_ARCH_ARM64)
|
| return 16;
|
| @@ -202,7 +188,6 @@ intptr_t OS::ActivationFrameAlignment() {
|
| #endif
|
| }
|
|
|
| -
|
| intptr_t OS::PreferredCodeAlignment() {
|
| ASSERT(32 <= OS::kMaxPreferredCodeAlignment);
|
| #if defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64) || \
|
| @@ -215,26 +200,22 @@ intptr_t OS::PreferredCodeAlignment() {
|
| #endif
|
| }
|
|
|
| -
|
| int OS::NumberOfAvailableProcessors() {
|
| SYSTEM_INFO info;
|
| GetSystemInfo(&info);
|
| return info.dwNumberOfProcessors;
|
| }
|
|
|
| -
|
| uintptr_t OS::MaxRSS() {
|
| PROCESS_MEMORY_COUNTERS pmc;
|
| GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
|
| return pmc.PeakWorkingSetSize;
|
| }
|
|
|
| -
|
| void OS::Sleep(int64_t millis) {
|
| ::Sleep(millis);
|
| }
|
|
|
| -
|
| void OS::SleepMicros(int64_t micros) {
|
| // Windows only supports millisecond sleeps.
|
| if (micros < kMicrosecondsPerMillisecond) {
|
| @@ -244,7 +225,6 @@ void OS::SleepMicros(int64_t micros) {
|
| OS::Sleep(micros / kMicrosecondsPerMillisecond);
|
| }
|
|
|
| -
|
| void OS::DebugBreak() {
|
| #if defined(_MSC_VER)
|
| // Microsoft Visual C/C++ or drop-in replacement.
|
| @@ -259,12 +239,10 @@ void OS::DebugBreak() {
|
| #endif
|
| }
|
|
|
| -
|
| DART_NOINLINE uintptr_t OS::GetProgramCounter() {
|
| return reinterpret_cast<uintptr_t>(_ReturnAddress());
|
| }
|
|
|
| -
|
| char* OS::StrNDup(const char* s, intptr_t n) {
|
| intptr_t len = strlen(s);
|
| if ((n < 0) || (len < 0)) {
|
| @@ -281,12 +259,10 @@ char* OS::StrNDup(const char* s, intptr_t n) {
|
| return reinterpret_cast<char*>(memmove(result, s, len));
|
| }
|
|
|
| -
|
| intptr_t OS::StrNLen(const char* s, intptr_t n) {
|
| return strnlen(s, n);
|
| }
|
|
|
| -
|
| void OS::Print(const char* format, ...) {
|
| va_list args;
|
| va_start(args, format);
|
| @@ -294,13 +270,11 @@ void OS::Print(const char* format, ...) {
|
| va_end(args);
|
| }
|
|
|
| -
|
| void OS::VFPrint(FILE* stream, const char* format, va_list args) {
|
| vfprintf(stream, format, args);
|
| fflush(stream);
|
| }
|
|
|
| -
|
| int OS::SNPrint(char* str, size_t size, const char* format, ...) {
|
| va_list args;
|
| va_start(args, format);
|
| @@ -309,7 +283,6 @@ int OS::SNPrint(char* str, size_t size, const char* format, ...) {
|
| return retval;
|
| }
|
|
|
| -
|
| int OS::VSNPrint(char* str, size_t size, const char* format, va_list args) {
|
| if (str == NULL || size == 0) {
|
| int retval = _vscprintf(format, args);
|
| @@ -344,7 +317,6 @@ int OS::VSNPrint(char* str, size_t size, const char* format, va_list args) {
|
| return written;
|
| }
|
|
|
| -
|
| char* OS::SCreate(Zone* zone, const char* format, ...) {
|
| va_list args;
|
| va_start(args, format);
|
| @@ -353,7 +325,6 @@ char* OS::SCreate(Zone* zone, const char* format, ...) {
|
| return buffer;
|
| }
|
|
|
| -
|
| char* OS::VSCreate(Zone* zone, const char* format, va_list args) {
|
| // Measure.
|
| va_list measure_args;
|
| @@ -377,7 +348,6 @@ char* OS::VSCreate(Zone* zone, const char* format, va_list args) {
|
| return buffer;
|
| }
|
|
|
| -
|
| bool OS::StringToInt64(const char* str, int64_t* value) {
|
| ASSERT(str != NULL && strlen(str) > 0 && value != NULL);
|
| int32_t base = 10;
|
| @@ -395,10 +365,8 @@ bool OS::StringToInt64(const char* str, int64_t* value) {
|
| return ((errno == 0) && (endptr != str) && (*endptr == 0));
|
| }
|
|
|
| -
|
| void OS::RegisterCodeObservers() {}
|
|
|
| -
|
| void OS::PrintErr(const char* format, ...) {
|
| va_list args;
|
| va_start(args, format);
|
| @@ -406,7 +374,6 @@ void OS::PrintErr(const char* format, ...) {
|
| va_end(args);
|
| }
|
|
|
| -
|
| void OS::InitOnce() {
|
| // TODO(5411554): For now we check that initonce is called only once,
|
| // Once there is more formal mechanism to call InitOnce we can move
|
| @@ -427,20 +394,17 @@ void OS::InitOnce() {
|
| }
|
| }
|
|
|
| -
|
| void OS::Shutdown() {
|
| // TODO(zra): Enable once VM can shutdown cleanly.
|
| // ThreadLocalData::Shutdown();
|
| }
|
|
|
| -
|
| void OS::Abort() {
|
| // TODO(zra): Remove once VM shuts down cleanly.
|
| private_flag_windows_run_tls_destructors = false;
|
| abort();
|
| }
|
|
|
| -
|
| void OS::Exit(int code) {
|
| // TODO(zra): Remove once VM shuts down cleanly.
|
| private_flag_windows_run_tls_destructors = false;
|
|
|