OLD | NEW |
1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dartino 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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 | 4 |
5 #ifndef SRC_VM_PROCESS_H_ | 5 #ifndef SRC_VM_PROCESS_H_ |
6 #define SRC_VM_PROCESS_H_ | 6 #define SRC_VM_PROCESS_H_ |
7 | 7 |
8 #include "src/shared/atomic.h" | 8 #include "src/shared/atomic.h" |
9 #include "src/shared/random.h" | 9 #include "src/shared/random.h" |
10 | 10 |
11 #include "src/vm/debug_info.h" | 11 #include "src/vm/debug_info.h" |
12 #include "src/vm/heap.h" | 12 #include "src/vm/heap.h" |
13 #include "src/vm/links.h" | 13 #include "src/vm/links.h" |
14 #include "src/vm/lookup_cache.h" | 14 #include "src/vm/lookup_cache.h" |
15 #include "src/vm/message_mailbox.h" | 15 #include "src/vm/message_mailbox.h" |
16 #include "src/vm/natives.h" | 16 #include "src/vm/natives.h" |
17 #include "src/vm/process_handle.h" | 17 #include "src/vm/process_handle.h" |
18 #include "src/vm/program.h" | 18 #include "src/vm/program.h" |
19 #include "src/vm/remembered_set.h" | 19 #include "src/vm/remembered_set.h" |
20 #include "src/vm/signal.h" | 20 #include "src/vm/signal.h" |
21 #include "src/vm/thread.h" | 21 #include "src/vm/thread.h" |
22 | 22 |
23 namespace fletch { | 23 namespace dartino { |
24 | 24 |
25 class Engine; | 25 class Engine; |
26 class Interpreter; | 26 class Interpreter; |
27 class Port; | 27 class Port; |
28 class ProcessQueue; | 28 class ProcessQueue; |
29 class ProcessVisitor; | 29 class ProcessVisitor; |
30 class Session; | 30 class Session; |
31 | 31 |
32 class Process { | 32 class Process { |
33 public: | 33 public: |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 StackCheckResult HandleStackOverflow(int addition); | 81 StackCheckResult HandleStackOverflow(int addition); |
82 | 82 |
83 inline LookupCache::Entry* LookupEntry(Object* receiver, int selector); | 83 inline LookupCache::Entry* LookupEntry(Object* receiver, int selector); |
84 | 84 |
85 // Lookup and update the primary cache entry. | 85 // Lookup and update the primary cache entry. |
86 LookupCache::Entry* LookupEntrySlow(LookupCache::Entry* primary, Class* clazz, | 86 LookupCache::Entry* LookupEntrySlow(LookupCache::Entry* primary, Class* clazz, |
87 int selector); | 87 int selector); |
88 | 88 |
89 Object* NewByteArray(int length); | 89 Object* NewByteArray(int length); |
90 Object* NewArray(int length); | 90 Object* NewArray(int length); |
91 Object* NewDouble(fletch_double value); | 91 Object* NewDouble(dartino_double value); |
92 Object* NewInteger(int64 value); | 92 Object* NewInteger(int64 value); |
93 | 93 |
94 // Attempt to deallocate the large integer object. If the large integer | 94 // Attempt to deallocate the large integer object. If the large integer |
95 // was the last allocated object the allocation top is moved back so | 95 // was the last allocated object the allocation top is moved back so |
96 // the memory can be reused. | 96 // the memory can be reused. |
97 void TryDeallocInteger(LargeInteger* object); | 97 void TryDeallocInteger(LargeInteger* object); |
98 | 98 |
99 // NewString allocates a string of the given length and fills the payload | 99 // NewString allocates a string of the given length and fills the payload |
100 // with zeroes. | 100 // with zeroes. |
101 Object* NewOneByteString(int length); | 101 Object* NewOneByteString(int length); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 if (value == kYielding) { | 327 if (value == kYielding) { |
328 value = state_; | 328 value = state_; |
329 continue; | 329 continue; |
330 } | 330 } |
331 if (value != from) break; | 331 if (value != from) break; |
332 if (state_.compare_exchange_weak(value, to)) return true; | 332 if (state_.compare_exchange_weak(value, to)) return true; |
333 } | 333 } |
334 return false; | 334 return false; |
335 } | 335 } |
336 | 336 |
337 } // namespace fletch | 337 } // namespace dartino |
338 | 338 |
339 #endif // SRC_VM_PROCESS_H_ | 339 #endif // SRC_VM_PROCESS_H_ |
OLD | NEW |