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

Side by Side Diff: runtime/vm/dart_api_impl.h

Issue 1541073002: Implement safepointing of threads (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: fix-typo Created 4 years, 10 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
« no previous file with comments | « runtime/vm/custom_isolate_test.cc ('k') | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 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 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 #ifndef VM_DART_API_IMPL_H_ 5 #ifndef VM_DART_API_IMPL_H_
6 #define VM_DART_API_IMPL_H_ 6 #define VM_DART_API_IMPL_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/native_arguments.h" 9 #include "vm/native_arguments.h"
10 #include "vm/object.h" 10 #include "vm/object.h"
11 #include "vm/safepoint.h"
11 12
12 namespace dart { 13 namespace dart {
13 14
14 class ApiLocalScope; 15 class ApiLocalScope;
15 class ApiState; 16 class ApiState;
16 class FinalizablePersistentHandle; 17 class FinalizablePersistentHandle;
17 class LocalHandle; 18 class LocalHandle;
18 class PersistentHandle; 19 class PersistentHandle;
19 class ReusableObjectHandleScope; 20 class ReusableObjectHandleScope;
20 21
(...skipping 23 matching lines...) Expand all
44 // Checks that the current isolate is not NULL and that it has an API scope. 45 // Checks that the current isolate is not NULL and that it has an API scope.
45 #define CHECK_API_SCOPE(thread) \ 46 #define CHECK_API_SCOPE(thread) \
46 do { \ 47 do { \
47 Thread* tmpT = (thread); \ 48 Thread* tmpT = (thread); \
48 Isolate* tmpI = tmpT->isolate(); \ 49 Isolate* tmpI = tmpT->isolate(); \
49 CHECK_ISOLATE(tmpI); \ 50 CHECK_ISOLATE(tmpI); \
50 if (tmpT->api_top_scope() == NULL) { \ 51 if (tmpT->api_top_scope() == NULL) { \
51 FATAL1("%s expects to find a current scope. Did you forget to call " \ 52 FATAL1("%s expects to find a current scope. Did you forget to call " \
52 "Dart_EnterScope?", CURRENT_FUNC); \ 53 "Dart_EnterScope?", CURRENT_FUNC); \
53 } \ 54 } \
54 } while (0) 55 } while (0); \
55 56
56 #define DARTSCOPE(thread) \ 57 #define DARTSCOPE(thread) \
57 Thread* T = (thread); \ 58 Thread* T = (thread); \
58 CHECK_API_SCOPE(T); \ 59 CHECK_API_SCOPE(T); \
60 TransitionNativeToVM trainsition(T); \
59 HANDLESCOPE(T); 61 HANDLESCOPE(T);
60 62
61 63
62 #define RETURN_TYPE_ERROR(zone, dart_handle, type) \ 64 #define RETURN_TYPE_ERROR(zone, dart_handle, type) \
63 do { \ 65 do { \
64 const Object& tmp = \ 66 const Object& tmp = \
65 Object::Handle(zone, Api::UnwrapHandle((dart_handle))); \ 67 Object::Handle(zone, Api::UnwrapHandle((dart_handle))); \
66 if (tmp.IsNull()) { \ 68 if (tmp.IsNull()) { \
67 return Api::NewError("%s expects argument '%s' to be non-null.", \ 69 return Api::NewError("%s expects argument '%s' to be non-null.", \
68 CURRENT_FUNC, #dart_handle); \ 70 CURRENT_FUNC, #dart_handle); \
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 return Api::NewError("%s: Cannot load after Dart_Precompile", \ 291 return Api::NewError("%s: Cannot load after Dart_Precompile", \
290 CURRENT_FUNC); \ 292 CURRENT_FUNC); \
291 } \ 293 } \
292 294
293 #define ASSERT_CALLBACK_STATE(thread) \ 295 #define ASSERT_CALLBACK_STATE(thread) \
294 ASSERT(thread->no_callback_scope_depth() == 0) 296 ASSERT(thread->no_callback_scope_depth() == 0)
295 297
296 } // namespace dart. 298 } // namespace dart.
297 299
298 #endif // VM_DART_API_IMPL_H_ 300 #endif // VM_DART_API_IMPL_H_
OLDNEW
« no previous file with comments | « runtime/vm/custom_isolate_test.cc ('k') | runtime/vm/dart_api_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698