OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
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. | |
4 | |
5 #ifndef VM_ISOLATE_LINUX_H_ | |
6 #define VM_ISOLATE_LINUX_H_ | |
7 | |
8 #if !defined(VM_ISOLATE_H_) | |
9 #error Do not include isolate_linux.h directly; use isolate.h instead. | |
10 #endif | |
11 | |
12 #include <pthread.h> | |
13 | |
14 namespace dart { | |
15 | |
16 #define PTHREAD_KEY_UNSET static_cast<pthread_key_t>(-1) | |
17 extern pthread_key_t isolate_key; | |
18 | |
19 | |
20 inline Isolate* Isolate::Current() { | |
21 ASSERT(isolate_key != PTHREAD_KEY_UNSET); | |
22 return reinterpret_cast<Isolate*>(pthread_getspecific(isolate_key)); | |
23 } | |
24 | |
25 } // namespace dart | |
26 | |
27 #endif // VM_ISOLATE_LINUX_H_ | |
OLD | NEW |