#ifndef V8_LIBPLATFORM_DEFAULT_PLATFORM_H_
#define V8_LIBPLATFORM_DEFAULT_PLATFORM_H_
+#include <map>
+#include <queue>
#include <vector>
#include "include/v8-platform.h"
#include "src/base/macros.h"
-#include "src/platform/mutex.h"
+#include "src/base/platform/mutex.h"
#include "src/libplatform/task-queue.h"
namespace v8 {
-namespace internal {
+namespace platform {
class TaskQueue;
class Thread;
void EnsureInitialized();
+ bool PumpMessageLoop(v8::Isolate* isolate);
+
// v8::Platform implementation.
virtual void CallOnBackgroundThread(
- Task *task, ExpectedRuntime expected_runtime) V8_OVERRIDE;
- virtual void CallOnForegroundThread(v8::Isolate *isolate,
- Task *task) V8_OVERRIDE;
+ Task* task, ExpectedRuntime expected_runtime) V8_OVERRIDE;
+ virtual void CallOnForegroundThread(v8::Isolate* isolate,
+ Task* task) V8_OVERRIDE;
private:
static const int kMaxThreadPoolSize;
- Mutex lock_;
+ base::Mutex lock_;
bool initialized_;
int thread_pool_size_;
std::vector<WorkerThread*> thread_pool_;
TaskQueue queue_;
+ std::map<v8::Isolate*, std::queue<Task*> > main_thread_queue_;
DISALLOW_COPY_AND_ASSIGN(DefaultPlatform);
};
-} } // namespace v8::internal
+} } // namespace v8::platform
#endif // V8_LIBPLATFORM_DEFAULT_PLATFORM_H_