OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_LIBPLATFORM_LIBPLATFORM_H_ | 5 #ifndef V8_LIBPLATFORM_LIBPLATFORM_H_ |
6 #define V8_LIBPLATFORM_LIBPLATFORM_H_ | 6 #define V8_LIBPLATFORM_LIBPLATFORM_H_ |
7 | 7 |
8 #include "libplatform/libplatform-export.h" | 8 #include "libplatform/libplatform-export.h" |
9 #include "libplatform/v8-tracing.h" | 9 #include "libplatform/v8-tracing.h" |
10 #include "v8-platform.h" // NOLINT(build/include) | 10 #include "v8-platform.h" // NOLINT(build/include) |
11 | 11 |
12 namespace v8 { | 12 namespace v8 { |
13 namespace platform { | 13 namespace platform { |
14 | 14 |
| 15 enum class IdleTaskSupport { kDisabled, kEnabled }; |
| 16 |
15 /** | 17 /** |
16 * Returns a new instance of the default v8::Platform implementation. | 18 * Returns a new instance of the default v8::Platform implementation. |
17 * | 19 * |
18 * The caller will take ownership of the returned pointer. |thread_pool_size| | 20 * The caller will take ownership of the returned pointer. |thread_pool_size| |
19 * is the number of worker threads to allocate for background jobs. If a value | 21 * is the number of worker threads to allocate for background jobs. If a value |
20 * of zero is passed, a suitable default based on the current number of | 22 * of zero is passed, a suitable default based on the current number of |
21 * processors online will be chosen. | 23 * processors online will be chosen. |
| 24 * If |idle_task_support| is enabled then the platform will accept idle |
| 25 * tasks (IdleTasksEnabled will return true) and will rely on the embedder |
| 26 * calling v8::platform::RunIdleTasks to process the idle tasks. |
22 */ | 27 */ |
23 V8_PLATFORM_EXPORT v8::Platform* CreateDefaultPlatform( | 28 V8_PLATFORM_EXPORT v8::Platform* CreateDefaultPlatform( |
24 int thread_pool_size = 0); | 29 int thread_pool_size = 0, |
| 30 IdleTaskSupport idle_task_support = IdleTaskSupport::kDisabled); |
25 | 31 |
26 /** | 32 /** |
27 * Pumps the message loop for the given isolate. | 33 * Pumps the message loop for the given isolate. |
28 * | 34 * |
29 * The caller has to make sure that this is called from the right thread. | 35 * The caller has to make sure that this is called from the right thread. |
30 * Returns true if a task was executed, and false otherwise. This call does | 36 * Returns true if a task was executed, and false otherwise. This call does |
31 * not block if no task is pending. The |platform| has to be created using | 37 * not block if no task is pending. The |platform| has to be created using |
32 * |CreateDefaultPlatform|. | 38 * |CreateDefaultPlatform|. |
33 */ | 39 */ |
34 V8_PLATFORM_EXPORT bool PumpMessageLoop(v8::Platform* platform, | 40 V8_PLATFORM_EXPORT bool PumpMessageLoop(v8::Platform* platform, |
(...skipping 16 matching lines...) Expand all Loading... |
51 * The |platform| has to be created using |CreateDefaultPlatform|. | 57 * The |platform| has to be created using |CreateDefaultPlatform|. |
52 */ | 58 */ |
53 V8_PLATFORM_EXPORT void SetTracingController( | 59 V8_PLATFORM_EXPORT void SetTracingController( |
54 v8::Platform* platform, | 60 v8::Platform* platform, |
55 v8::platform::tracing::TracingController* tracing_controller); | 61 v8::platform::tracing::TracingController* tracing_controller); |
56 | 62 |
57 } // namespace platform | 63 } // namespace platform |
58 } // namespace v8 | 64 } // namespace v8 |
59 | 65 |
60 #endif // V8_LIBPLATFORM_LIBPLATFORM_H_ | 66 #endif // V8_LIBPLATFORM_LIBPLATFORM_H_ |
OLD | NEW |