Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: runtime/vm/os_thread_fuchsia.cc

Issue 2189973003: Fuchsia: Make some more VM tests pass (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "platform/globals.h" // NOLINT 5 #include "platform/globals.h" // NOLINT
6 #if defined(TARGET_OS_FUCHSIA) 6 #if defined(TARGET_OS_FUCHSIA)
7 7
8 #include "vm/os_thread.h" 8 #include "vm/os_thread.h"
9 #include "vm/os_thread_fuchsia.h" 9 #include "vm/os_thread_fuchsia.h"
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 #endif 45 #endif
46 46
47 47
48 static void ComputeTimeSpecMicros(struct timespec* ts, int64_t micros) { 48 static void ComputeTimeSpecMicros(struct timespec* ts, int64_t micros) {
49 // time in nanoseconds. 49 // time in nanoseconds.
50 mx_time_t now = mx_current_time(); 50 mx_time_t now = mx_current_time();
51 mx_time_t target = now + (micros * kNanosecondsPerMicrosecond); 51 mx_time_t target = now + (micros * kNanosecondsPerMicrosecond);
52 int64_t secs = target / kNanosecondsPerSecond; 52 int64_t secs = target / kNanosecondsPerSecond;
53 int64_t nanos = target - (secs * kNanosecondsPerSecond); 53 int64_t nanos = target - (secs * kNanosecondsPerSecond);
54 54
55 ts->tv_sec += secs; 55 ts->tv_sec = secs;
56 ts->tv_nsec += nanos; 56 ts->tv_nsec = nanos;
57 if (ts->tv_nsec >= kNanosecondsPerSecond) {
58 ts->tv_sec += 1;
59 ts->tv_nsec -= kNanosecondsPerSecond;
60 }
61 } 57 }
62 58
63 59
64 class ThreadStartData { 60 class ThreadStartData {
65 public: 61 public:
66 ThreadStartData(const char* name, 62 ThreadStartData(const char* name,
67 OSThread::ThreadStartFunction function, 63 OSThread::ThreadStartFunction function,
68 uword parameter) 64 uword parameter)
69 : name_(name), function_(function), parameter_(parameter) {} 65 : name_(name), function_(function), parameter_(parameter) {}
70 66
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 void Monitor::NotifyAll() { 422 void Monitor::NotifyAll() {
427 // When running with assertions enabled we track the owner. 423 // When running with assertions enabled we track the owner.
428 ASSERT(IsOwnedByCurrentThread()); 424 ASSERT(IsOwnedByCurrentThread());
429 int result = pthread_cond_broadcast(data_.cond()); 425 int result = pthread_cond_broadcast(data_.cond());
430 VALIDATE_PTHREAD_RESULT(result); 426 VALIDATE_PTHREAD_RESULT(result);
431 } 427 }
432 428
433 } // namespace dart 429 } // namespace dart
434 430
435 #endif // defined(TARGET_OS_FUCHSIA) 431 #endif // defined(TARGET_OS_FUCHSIA)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698