| Index: runtime/vm/thread.h
|
| ===================================================================
|
| --- runtime/vm/thread.h (revision 0)
|
| +++ runtime/vm/thread.h (working copy)
|
| @@ -0,0 +1,40 @@
|
| +// Copyright (c) 2015, 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 "vm/isolate.h"
|
| +
|
| +namespace dart {
|
| +
|
| +// A VM thread; may be executing Dart code or performing helper tasks like
|
| +// garbage collection.
|
| +class Thread {
|
| + public:
|
| + static Thread* Current() {
|
| + // For now, there is still just one thread per isolate, and the Thread
|
| + // class just aliases the Isolate*. Once all interfaces and uses have been
|
| + // updated to distinguish between isolates and threads, Thread will get its
|
| + // own thread-local storage key.
|
| + return reinterpret_cast<Thread*>(Isolate::Current());
|
| + }
|
| +
|
| + // The topmost zone used for allocation in this thread.
|
| + Zone* zone() {
|
| + return reinterpret_cast<BaseIsolate*>(this)->current_zone();
|
| + }
|
| +
|
| + // The isolate that this thread is operating on.
|
| + Isolate* isolate() {
|
| + return reinterpret_cast<Isolate*>(this);
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(Thread);
|
| +};
|
| +
|
| +} // namespace dart
|
| +
|
| +#endif // VM_THREAD_H_
|
|
|