1d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org// Copyright 2014 the V8 project authors. All rights reserved.
2d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be
3d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org// found in the LICENSE file.
4d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
5d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org#ifndef V8_LIBPLATFORM_LIBPLATFORM_H_
6d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org#define V8_LIBPLATFORM_LIBPLATFORM_H_
7d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
8d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org#include "include/v8-platform.h"
9d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
10d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.orgnamespace v8 {
11d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.orgnamespace platform {
12d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
13d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org/**
14d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * Returns a new instance of the default v8::Platform implementation.
15d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org *
16d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * The caller will take ownership of the returned pointer. |thread_pool_size|
17d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * is the number of worker threads to allocate for background jobs. If a value
18d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * of zero is passed, a suitable default based on the current number of
19d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * processors online will be chosen.
20d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org */
21d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.orgv8::Platform* CreateDefaultPlatform(int thread_pool_size = 0);
22d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
23d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
24d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org/**
25d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * Pumps the message loop for the given isolate.
26d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org *
27d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * The caller has to make sure that this is called from the right thread.
28d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * Returns true if a task was executed, and false otherwise. This call does
29d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * not block if no task is pending. The |platform| has to be created using
30d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org * |CreateDefaultPlatform|.
31d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org */
32d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.orgbool PumpMessageLoop(v8::Platform* platform, v8::Isolate* isolate);
33d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
34d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
35d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org}  // namespace platform
36d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org}  // namespace v8
37d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org
38d0bddc653152f270a27fe32d5d7b0f5c0fa3b00cmachenbach@chromium.org#endif  // V8_LIBPLATFORM_LIBPLATFORM_H_
39