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

Unified Diff: runtime/platform/thread.h

Issue 463993002: - Separate the thread implementation used in bin/ and vm/ (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 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 side-by-side diff with in-line comments
Download patch
Index: runtime/platform/thread.h
===================================================================
--- runtime/platform/thread.h (revision 39151)
+++ runtime/platform/thread.h (working copy)
@@ -1,101 +0,0 @@
-// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-#ifndef PLATFORM_THREAD_H_
-#define PLATFORM_THREAD_H_
-
-#include "platform/globals.h"
-
-// Declare the OS-specific types ahead of defining the generic classes.
-#if defined(TARGET_OS_ANDROID)
-#include "platform/thread_android.h"
-#elif defined(TARGET_OS_LINUX)
-#include "platform/thread_linux.h"
-#elif defined(TARGET_OS_MACOS)
-#include "platform/thread_macos.h"
-#elif defined(TARGET_OS_WINDOWS)
-#include "platform/thread_win.h"
-#else
-#error Unknown target os.
-#endif
-
-namespace dart {
-
-class Thread {
- public:
- static ThreadLocalKey kUnsetThreadLocalKey;
- static ThreadId kInvalidThreadId;
-
- typedef void (*ThreadStartFunction) (uword parameter);
-
- // Start a thread running the specified function. Returns 0 if the
- // thread started successfuly and a system specific error code if
- // the thread failed to start.
- static int Start(ThreadStartFunction function, uword parameters);
-
- static ThreadLocalKey CreateThreadLocal();
- static void DeleteThreadLocal(ThreadLocalKey key);
- static uword GetThreadLocal(ThreadLocalKey key) {
- return ThreadInlineImpl::GetThreadLocal(key);
- }
- static void SetThreadLocal(ThreadLocalKey key, uword value);
- static intptr_t GetMaxStackSize();
- static ThreadId GetCurrentThreadId();
- static bool Join(ThreadId id);
- static intptr_t ThreadIdToIntPtr(ThreadId id);
- static bool Compare(ThreadId a, ThreadId b);
- static void GetThreadCpuUsage(ThreadId thread_id, int64_t* cpu_usage);
-};
-
-
-class Mutex {
- public:
- Mutex();
- ~Mutex();
-
- void Lock();
- bool TryLock();
- void Unlock();
-
- private:
- MutexData data_;
-
- DISALLOW_COPY_AND_ASSIGN(Mutex);
-};
-
-
-class Monitor {
- public:
- enum WaitResult {
- kNotified,
- kTimedOut
- };
-
- static const int64_t kNoTimeout = 0;
-
- Monitor();
- ~Monitor();
-
- void Enter();
- void Exit();
-
- // Wait for notification or timeout.
- WaitResult Wait(int64_t millis);
- WaitResult WaitMicros(int64_t micros);
-
- // Notify waiting threads.
- void Notify();
- void NotifyAll();
-
- private:
- MonitorData data_; // OS-specific data.
-
- DISALLOW_COPY_AND_ASSIGN(Monitor);
-};
-
-
-} // namespace dart
-
-
-#endif // PLATFORM_THREAD_H_

Powered by Google App Engine
This is Rietveld 408576698