| Index: runtime/vm/thread.h
|
| ===================================================================
|
| --- runtime/vm/thread.h (revision 42893)
|
| +++ runtime/vm/thread.h (working copy)
|
| @@ -1,110 +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 VM_THREAD_H_
|
| -#define VM_THREAD_H_
|
| -
|
| -#include "platform/globals.h"
|
| -
|
| -// Declare the OS-specific types ahead of defining the generic classes.
|
| -#if defined(TARGET_OS_ANDROID)
|
| -#include "vm/thread_android.h"
|
| -#elif defined(TARGET_OS_LINUX)
|
| -#include "vm/thread_linux.h"
|
| -#elif defined(TARGET_OS_MACOS)
|
| -#include "vm/thread_macos.h"
|
| -#elif defined(TARGET_OS_WINDOWS)
|
| -#include "vm/thread_win.h"
|
| -#else
|
| -#error Unknown target os.
|
| -#endif
|
| -
|
| -namespace dart {
|
| -
|
| -class Isolate;
|
| -
|
| -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();
|
| -
|
| -#if defined(DEBUG)
|
| - Isolate* Owner() const { return owner_; }
|
| -#endif // defined(DEBUG)
|
| -
|
| - private:
|
| - MutexData data_;
|
| -#if defined(DEBUG)
|
| - Isolate* owner_;
|
| -#endif // defined(DEBUG)
|
| -
|
| - 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 // VM_THREAD_H_
|
|
|